Beispiel #1
0
 def popd(self, **kwargs):
     """ Equivalent to bash/zsh popd """
     if len(self.dir_stack) > 0:
         if not kwargs.get('quiet', False):
             util.log_command("popd", self.dir_stack[-1])
         self._cd(self.dir_stack[-1])
         self.dir_stack.pop()
Beispiel #2
0
 def rm(self, path, **kwargs):
     """ Remove a file or directory """
     if not kwargs.get('quiet', False):
         util.log_command(['rm', '-rf', path])
     if not self.dryrun:
         try:
             shutil.rmtree(path)
         except Exception as e:
             print("Failed to delete dir {}: {}".format(path, e))
Beispiel #3
0
 def popenv(self, **kwargs):
     """ Restore the environment to the state on the top of the stack """
     if not kwargs.get('quiet', False):
         util.log_command(['popenv'])
     env = self.env_stack.pop()
     # clear out values that won't be overwritten
     for name, value in dict(os.environ).items():
         if name not in env:
             del os.environ[name]
     # write the old env
     for name, value in env.items():
         os.environ[name] = value
Beispiel #4
0
 def pushenv(self, **kwargs):
     """ Store the current environment on a stack, for restoration later """
     if not kwargs.get('quiet', False):
         util.log_command(['pushenv'])
     self.env_stack.append(dict(os.environ))
Beispiel #5
0
 def setenv(self, var, value, **kwargs):
     """ Set an environment variable """
     if not kwargs.get('quiet', False):
         util.log_command(["export", "{}={}".format(var, value)])
     if not self.dryrun:
         os.environ[var] = value
Beispiel #6
0
 def mkdir(self, directory, **kwargs):
     """ Equivalent to mkdir -p $dir """
     if not kwargs.get('quiet', False):
         util.log_command("mkdir", "-p", directory)
     if not self.dryrun:
         os.makedirs(directory, exist_ok=True)
Beispiel #7
0
 def pushd(self, directory, **kwargs):
     """ Equivalent to bash/zsh pushd """
     if not kwargs.get('quiet', False):
         util.log_command("pushd", directory)
     self.dir_stack.append(self.cwd())
     self._cd(directory)
Beispiel #8
0
 def cd(self, directory, **kwargs):
     """ # Helper to run chdir regardless of dry run status """
     if not kwargs.get('quiet', False):
         util.log_command("cd", directory)
     self._cd(directory)