Esempio n. 1
0
    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)
Esempio n. 2
0
    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
Esempio n. 3
0
 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)
Esempio n. 4
0
 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
Esempio n. 5
0
    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)