def _create_run_script(self): env = utils.Environment(self.dep, self._prefix, os.path.join(self._bdir, self._infofile), development=False) env2 = utils.Environment(self.dep, self._prefix, os.path.join(self._bdir, self._infofile), development=True) for sname, entrypoint in self._run_script: bindir = os.path.join(self._prefix, 'bin') if not os.path.exists(bindir): os.makedirs(bindir) exename = os.path.join(bindir, sname) #remove trailing lib entry cp = env['CLASSPATH'].rsplit(":", 1)[0] body = """#!/bin/sh\nexec /usr/bin/java $JAVA_OPTS -cp {0} {1} $*""" with open(exename, "w") as of: of.write(body.format(cp, entrypoint)) os.chmod(exename, 0755) # use own jar from current dir jar, cp = env2['CLASSPATH'].split(":", 1) jar = jar.rsplit("/", 1)[-1] cp = ":".join((jar, cp)) with open(sname, "w") as of: of.write(body.format(cp, entrypoint)) os.chmod(sname, 0755) self.add_extra_clean_targets(sname)
def _get_env(self): env = utils.Environment(self.dep, self._prefix, os.path.join(self._bdir, self._infofile)) envitems = [] envstr = "" pysite = os.path.join(self._bdir, self._installdir, "lib", "python%s" % sys.version[0:3], "site-packages") # XXX append the current package site-packages to PYTHONPATH # as pandas and others checks to see if it is valid before building. for k, v in env.items(): if v: v = os.path.expandvars(v) envitems.append("%s=%s" % (k, v)) # append original PATH if k == "PATH": envitems[-1] += ":$%s" % k elif k == "LD_LIBRARY_PATH": envitems[-1] = env.ld_prefix + envitems[-1] if k == "PYTHONPATH": envitems[-1] += ":%s" % pysite elif k == "PYTHONPATH" and not v: envitems.append("%s=%s" % (k, pysite)) if len(envitems): envstr = " ".join(['env'] + envitems) return envstr
def _create_init(self): ''' Create an init script for this package if in Code or 3rdParty. ''' if self.no_initscript or utils.in_tools_tree(): return env = utils.Environment(self.dep, self._prefix, os.path.join(self._bdir, self._infofile)) utils.create_init_file(self._initscript_name, env)
def _get_env(self): env = utils.Environment(self.dep, self._prefix, os.path.join(self._bdir, self._infofile)) envitems = [] envstr = "" for k, v in env.items(): if v: v = os.path.expandvars(v) envitems.append("%s=%s" % (k, v)) # append original PATH if k == "PATH": envitems[-1] += ":$%s" % k elif k == "LD_LIBRARY_PATH": envitems[-1] = env.ld_prefix + envitems[-1] if len(envitems): envstr = " ".join(['env'] + envitems) return envstr
def _create_release_envfile(self): ''' For releases, everything is combined into a single tree which may be installed anywhere in the target system. Create an initialization file that will just need the location of the tree in order to define the required shell environment. ''' env = utils.Environment(self.dep, self._prefix, os.path.join(self._bdir, self._infofile), development=False) template = "../../../templates/initenv.py.tmpl" filename = os.path.join(self._stagedir, "initenv.py") data = pkg_resources.resource_string(__name__, template) for k, v in env.items(): k = "%%%" + k + "%%%" data = data.replace(k, v) data = data.replace("%%%ldprefix%%%", env.ld_prefix) with open(filename, "w") as fh: fh.write(data)