Beispiel #1
0
    def pkg_tarball(self, destdir=None):
        with fs.mkdtemp() as d:
            srcroot = join(d, self.pkgname)
            fs.sh_makedirs(srcroot)

            # Compilation
            etc_zarafa = fs.gluejoin(srcroot, self.conf_root)
            fs.sh_makedirs(etc_zarafa)
            self.compile_cfg_files(etc_zarafa)

            # Include source
            share = fs.gluejoin(srcroot, self.sitepkgs_root)

            self.include_python_packages(self.repo_basedir, share)

            self.patch_src(share)

            # Include dependencies
            self.include_deps(share)

            # Generate makefile
            self.compile_makefile(srcroot)

            destdir = destdir or d

            targz_fp = join(destdir, self.targz_name)
            with archive.tarfile(targz_fp, 'w:gz') as tar:
                tar.add(d, arcname='')

            return targz_fp
Beispiel #2
0
    def pkg_tarball(self, destdir=None):
        with fs.mkdtemp() as d:
            srcroot = join(d, self.pkgname)
            fs.sh_makedirs(srcroot)

            # Compilation
            etc_zarafa = fs.gluejoin(srcroot, self.conf_root)
            fs.sh_makedirs(etc_zarafa)
            self.compile_cfg_files(etc_zarafa)

            # Include source
            share = fs.gluejoin(srcroot, self.sitepkgs_root)

            self.include_python_packages(self.repo_basedir, share)

            self.patch_src(share)

            # Include dependencies
            self.include_deps(share)

            # Generate makefile
            self.compile_makefile(srcroot)

            destdir = destdir or d

            targz_fp = join(destdir, self.targz_name)
            with archive.tarfile(targz_fp, 'w:gz') as tar:
                tar.add(d, arcname='')

            return targz_fp
Beispiel #3
0
    def compile_makefile(self, srcroot):
        tmpl = self.tmpl_env.get_template('packaging/Makefile.in')

        stmts = []
        for r, dirs, files in os.walk(srcroot):
            relroot = re.sub(re.escape(srcroot), '', r)
            relroot = '/' if relroot == '' else relroot

            if relroot != '/':
                stm = 'mkdir -p ${DESTDIR}%s' % relroot
                stmts.append(stm)

            for f in files:
                fsrc = fs.gluejoin(srcroot, relroot, f)
                f = fs.gluejoin(relroot, f)

                mode = 755 if os.access(fsrc, os.X_OK) else 644

                stm = 'install -m%s %s ${DESTDIR}%s' % (mode, f[1:], f)
                stmts.append(stm)

        stmts = self.compile_makefile_extra_stmts(stmts)

        stmts = '\n'.join(['\t' + stm for stm in stmts]) + '\n'

        content = tmpl.render(
            statements=stmts,
        )
        fp = join(srcroot, 'Makefile')
        open(fp, 'wt').write(content)
Beispiel #4
0
    def patch_src(self, destdir):
        paths = [
            self.sitepkgs_root,
            join(self.sitepkgs_root, 'cmdline'),
        ]
        context = {
            '(?m)(EXTRA_PATHS\s*=\s*).*$':      '\g<1>{0}'.format(repr(paths)),
        }

        fp = fs.gluejoin(destdir, 'cmdline', 'zsm-client.py')
        text.patch_file(context, fp, dest=fp, literal=False)

        fp = fs.gluejoin(destdir, 'cmdline', 'cli')
        text.patch_file(context, fp, dest=fp, literal=False)
Beispiel #5
0
    def patch_src(self, destdir):
        paths = [
            self.sitepkgs_root,
            join(self.sitepkgs_root, 'cmdline'),
        ]
        context = {
            '(?m)(EXTRA_PATHS\s*=\s*).*$': '\g<1>{0}'.format(repr(paths)),
        }

        fp = fs.gluejoin(destdir, 'cmdline', 'zsm-client.py')
        text.patch_file(context, fp, dest=fp, literal=False)

        fp = fs.gluejoin(destdir, 'cmdline', 'cli')
        text.patch_file(context, fp, dest=fp, literal=False)
Beispiel #6
0
    def patch_src(self, destdir):
        paths = [
            self.sitepkgs_root,
        ]

        context = {
            '(?m)(EXTRA_PATHS\s*=\s*).*$': '\g<1>{0}'.format(repr(paths)),
        }

        fp = fs.gluejoin(destdir, 'deploy.py')
        text.patch_file(context, fp, dest=fp, literal=False)

        context.update({
            '(?m)(PERFORM_RELOAD\s*=\s*).*$':
            '\g<1>False',
            '(?m)(SETTINGS_MODULE\s*=\s*).*$':
            '\g<1>{0}'.format(repr('zsm.settings')),
        })

        fp = fs.gluejoin(destdir, 'webservice', 'manage.py')
        text.patch_file(context, fp, dest=fp, literal=False)
Beispiel #7
0
    def pkg_tarball(self, destdir=None):
        with fs.mkdtemp() as d:
            srcroot = join(d, self.pkgname)
            fs.sh_makedirs(srcroot)

            # Compilation
            share_root = fs.gluejoin(srcroot, self.share_root)
            fs.sh_makedirs(share_root)
            self.compile_cfg_files(share_root)

            # Generate makefile
            self.compile_makefile(srcroot)

            destdir = destdir or d

            targz_fp = join(destdir, self.targz_name)
            with archive.tarfile(targz_fp, 'w:gz') as tar:
                tar.add(d, arcname='')

            return targz_fp
Beispiel #8
0
    def pkg_tarball(self, destdir=None):
        with fs.mkdtemp() as d:
            srcroot = join(d, self.pkgname)
            fs.sh_makedirs(srcroot)

            # Compilation
            share_root = fs.gluejoin(srcroot, self.share_root)
            fs.sh_makedirs(share_root)
            self.compile_cfg_files(share_root)

            # Generate makefile
            self.compile_makefile(srcroot)

            destdir = destdir or d

            targz_fp = join(destdir, self.targz_name)
            with archive.tarfile(targz_fp, 'w:gz') as tar:
                tar.add(d, arcname='')

            return targz_fp