def GetP4Snapshot(self, p4view): p4client = perforce.CommandsFactory(self.P4_CHECKOUT_DIR, p4view) if self._p4_snapshot: return p4client.CheckoutFromSnapshot(self._p4_snapshot) else: return p4client.SetupAndDo(p4client.Sync(), p4client.Remove())
def __init__(self): self.buildit_path = os.path.join(self.CHECKOUT_DIR, 'gcctools', 'crosstool', 'v15') self.buildit_work_dir = 'buildit-tmp' self.buildit_work_dir_path = os.path.join('$JOB_TMP', self.buildit_work_dir) self.dejagnu_output_path = os.path.join(self.buildit_work_dir_path, 'dejagnu-output') paths = { 'gcctools': [ 'crosstool/v15/...', 'scripts/...' ], 'gcctools/google_vendor_src_branch': [ 'binutils/binutils-2.21/...', 'gdb/gdb-7.2.x/...', 'zlib/zlib-1.2.3/...' ], 'gcctools/vendor_src': [ 'gcc/google/gcc-4_6/...' ] } p4view = perforce.View('depot2', perforce.PathMapping.ListFromPathDict(paths)) self.p4client = perforce.CommandsFactory(self.CHECKOUT_DIR, p4view)
def PullSources(self): client_name = socket.gethostname() client_name += tempfile.mkstemp()[1].replace('/', '-') mappings = self.mappings p4view = perforce.View('depot2', GetCanonicalMappings(mappings)) p4client = perforce.CommandsFactory(self._root_dir, p4view, name=client_name) command = p4client.SetupAndDo(p4client.Sync(self.revision)) ret = self._ce.RunCommand(command) assert ret == 0, 'Could not setup client.' command = p4client.InCheckoutDir(p4client.SaveCurrentCLNumber()) ret, o, _ = self._ce.RunCommandWOutput(command) assert ret == 0, 'Could not get version from client.' self.revision = re.search('^\d+$', o.strip(), re.MULTILINE).group(0) command = p4client.InCheckoutDir(p4client.Remove()) ret = self._ce.RunCommand(command) assert ret == 0, 'Could not delete client.' return 0