def env(self, rel_dir=None): '''Return dictionary of env for the given project and optional package. It conists of the environment after sourcing the top level projects/setup.sh followed by the setup.sh in the given package package if rel_dir is given. rel_dir can be absolute path or relative from the projects/ directory. It can include or omit the final /cmt sub directory.''' from command import source import fs environ = self.cfg_environ() #print 'projects.env(): Source %s/setup.sh'%fs.projects() environ = source('./setup.sh', env=environ, dir=fs.projects()) if not rel_dir: rel_dir = self.rel_pkg() #print 'Using rel_dir =', rel_dir if not rel_dir: #print 'No rel_dir given' return environ cmtdir = os.path.join(self.proj_dir(), rel_dir) if cmtdir.rfind('/cmt') < 0: cmtdir = os.path.join(cmtdir,'cmt') import cmt if not os.path.exists(cmtdir+'/setup.sh'): cmt.cmt('config', environ=environ, dir=cmtdir) pass #print 'projects.env(): Source %s/setup.sh'%cmtdir environ = source('./setup.sh', env=environ, dir=cmtdir) return environ
def _fix_projects(self): import fs,os,cmt from command import source fs.goto(os.path.join(self.dstdir,'projects')) environ = source('./setup.sh') for pobj in self.project_objects: pdir = os.path.join(self.dstdir,'projects',pobj.name,pobj.rel_pkg(),'cmt') cmt.cmt("config",environ=environ,dir=pdir) pkgenv = source('./setup.sh',env=environ,dir=pdir) cmt.cmt("br cmt config",environ=pkgenv,dir=pdir) fs.goback()
def env(): """Return the environment after sourcing CMT's setup.sh. It assumes a cmt.build() has been called. """ global _environ if _environ is not None: return _environ from command import source mgrdir = os.path.join(srcdir(),'mgr') #print 'cmt.env: source %s/setup.sh'%mgrdir _environ = source('./setup.sh',dir=mgrdir) return _environ
def gitcmd(cmdstr): from command import source env = source(fs.projects() + "/setup.sh") return cmd("%s %s" % (gitexe(), cmdstr), env=env, output=True)