def occam(self, cfg, args): flags = [] nargs = [] i = 0 while i < len(args): if self.name == 'install' and args[i] in ['-B', '-f', '-g', '-m', '-o']: flags.extend(args[i:i+2]) i += 1 elif args[i].startswith('-'): flags.append(args[i]) else: nargs.append(args[i]) i += 1 cmdline = flags def fixarg(arg): return self.fixinputname(arg,keep=False,create=self.name not in ['unlink','rm']) inputs = filter(None,map(fixarg,nargs[0:len(nargs)-1])) if not inputs: return 0 last = nargs[len(nargs)-1] if len(nargs) > 1 and os.path.isdir(last) and self.name not in ['unlink', 'rm']: output = last else: output = self.fixname(last) cmdline = flags + inputs + [output] if self.name == 'ln' and os.path.exists(output): return 0 return driver.run(cfg.getStdTool(self.name), cmdline)
def occam(self, cfg, args): def modify(p): if p.startswith('-'): return p else: return self.fixinputname(p) args = map(modify,args) return driver.run(cfg.getStdTool('chmod'), args)
def occam(self, cfg, args): def modify(p): if p.startswith('-'): return p if os.path.isdir(p): return p if os.path.exists(self.fixinputname(p)): return self.fixinputname(p) return None (flags,nargs) = parse_args(args, ['-m', '-o', '-g'], modify) nargs = remove_dups(nargs) if len(nargs) == 0: return 0 elif len(nargs) == 1: if os.path.isdir(args[-1]): return 0 else: nargs += [self.fixinputname(args[-1])] return driver.run(cfg.getStdTool('install'), flags + nargs)
def run(self, cfg, _, args): logging.getLogger().info('%(cwd)s', {'cwd' : os.getcwd()}) if not isChild(): self.occam(cfg, args) return driver.run(cfg.getStdTool(self.name), args, pipe=False, inp=sys.stdin, resetPath=True)
def occam(self, cfg, args): # "opt -strip %s -o %s" % (input_file, intput_file) return driver.run(cfg.getLlvmTool('opt'), ['-strip', input_file, '-o=%s' % output_file])