def __init__(self, root, dbdir=None, clean=False): self.root = os.path.normpath(root) if dbdir: self.config = dbdir else: self.config = self.root + '/etc/gup' self.config = os.path.normpath(self.config) self.verbose = True self.is_distro = False ## lock must be outside of root, otherwise we can't rm -rf root # UGH, /GUB self.lock_file = self.root + '.lock' self.lock = locker.Locker(self.lock_file) if clean: loggedos.system(gub_log.default_logger, 'rm -fr %s' % self.config) self.make_dirs() files_db = self.config + '/files.db' packages_db = self.config + '/packages.db' self._file_package_db = db.open(files_db, 'c') self._package_file_db = db.open(packages_db, 'c')
def run_command_with_lock(lock_file_name, cmd, args): lock_obj = locker.Locker(lock_file_name) stat = os.spawnvp(os.P_WAIT, cmd, args) return stat