Beispiel #1
0
    def doc_stage(self, stage_dir):
        '''
        Copy (sphinx) documentation into the `stage_dir` and fix u
        intersphinx cross-references to be document root relative 
        (see :issue:`4775`)

        :param stage_dir: the name of the direcotry into which a release 
                          is staged before creating tarball.
        '''
        sphinxdir = os.path.join("doc", "_build", "html")
        if not os.path.exists(sphinxdir):
            return
        utils.q_print("info: running the documentation stage process")
        dst = os.path.abspath(self._builddir).replace(self._askaproot,
                                                      stage_dir)
        relpath = os.path.relpath(self._askaproot)
        sphinxdir = os.path.join("doc", "_build", "html") + os.path.sep
        dst = os.path.join(dst, self._builddir)
        if not os.path.exists(dst):
            os.makedirs(dst)
        utils.copy_tree(sphinxdir, dst, symlinks=True, overwrite=True)
        utils.q_print("info: updating documentation cross-references")

        for dname, dirs, files in os.walk(dst):
            for fname in files:
                if not fname.endswith(".html"):
                    continue
                fpath = os.path.join(dname, fname)
                with open(fpath) as f:
                    s = f.read()
                s = s.replace(self._askaproot, relpath)
                s = s.replace(sphinxdir, "")
                with open(fpath, "w") as f:
                    f.write(s)
Beispiel #2
0
 def _copy_to_install(self):
     for src, tgt, rename in self._install_files:
         tdir = self._prefix
         if tgt:
             tdir = os.path.join(tdir, tgt)
         if os.path.isdir(src):
             utils.copy_tree(src, tdir)
         else:
             dtgt = tdir
             if rename and tgt:
                 dtgt = os.path.dirname(tdir)
             if not os.path.exists(dtgt):
                 os.makedirs(dtgt)
             shutil.copy(src, tdir)
Beispiel #3
0
    def _stage(self):
        '''
        Stage packages (or dependent packages) into a temporary release
        tree as a prerequsite for creating a package tarball.
        '''
        utils.q_print("info: running the stage process")
        if not os.path.exists(self._stagedir):
            os.makedirs(self._stagedir)

        if os.path.exists(self._installdir):
            os.chdir(self._installdir)

            for src in glob.glob("*"):
                dst = os.path.join(self._stagedir, src)
                # we do a binary release
                if src == 'include':
                    continue
                if src in ['lib', 'lib64']:
                    # we do a binary release
                    pattern = '*.so*'
                    if sys.platform == 'darwin':
                        pattern = '*.dylib*'
                    utils.copy_tree(src,
                                    dst,
                                    symlinks=True,
                                    pattern=pattern,
                                    overwrite=True)
                    utils.copy_tree(src,
                                    dst,
                                    symlinks=True,
                                    pattern='*.jar*',
                                    overwrite=True)
                elif src == "VERSION":
                    with open(os.path.join(self._stagedir, "PACKAGE_VERSIONS"),
                              "a+") as f:
                        f.write(open(src).read())
                else:
                    utils.copy_tree(src, dst, overwrite=True)

            os.chdir("..")
            bindir = os.path.join(self._stagedir, "bin")
            for shfile in glob.glob("%s/*.sh" % bindir):
                data = open(shfile).read()
                if data.find("ASKAP auto-generated") > 0:
                    utils.q_print(
                        "info: removing ASKAP shell wrapper file %s" % shfile)
                    os.remove(shfile)
        else:  # may be a document only package.
            utils.q_print('warn: %s does not exist.' % self._installdir)

        self.doc_stage(os.path.join(self._stagedir, "sphinxdoc"))
Beispiel #4
0
 def _run_copy_trees(self):
     for dir in self._datatrees:
         if not self._quiet:
             print "Copying tree %s in install directory" % dir
         utils.copy_tree(dir, self._installdir, overwrite=True)
Beispiel #5
0
 def _install(self):
     os.chdir('..')
     utils.copy_tree(self._package, self._installdir, overwrite=True)