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)
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)
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"))
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)
def _install(self): os.chdir('..') utils.copy_tree(self._package, self._installdir, overwrite=True)