diff options
author | Mykyta Holubakha <hilobakho@gmail.com> | 2017-06-11 18:19:24 +0300 |
---|---|---|
committer | Mykyta Holubakha <hilobakho@gmail.com> | 2017-06-11 18:19:24 +0300 |
commit | b7fedf6ba3bbf4dc8ed92332be1d35f30d228dfe (patch) | |
tree | e8e3c16b9d3e8e431899c466d675ab78dd08c11c | |
parent | Cli fixes (diff) | |
download | pomu-b7fedf6ba3bbf4dc8ed92332be1d35f30d228dfe.tar.gz pomu-b7fedf6ba3bbf4dc8ed92332be1d35f30d228dfe.tar.bz2 pomu-b7fedf6ba3bbf4dc8ed92332be1d35f30d228dfe.zip |
Repository logic and import fixes
-rw-r--r-- | pomu/repo/repo.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/pomu/repo/repo.py b/pomu/repo/repo.py index 9f48c24..076b2b7 100644 --- a/pomu/repo/repo.py +++ b/pomu/repo/repo.py @@ -1,10 +1,11 @@ """Subroutines with repositories""" -from os import path, makedirs, remove, rmdir +from os import path, makedirs, rmdir from shutil import copy2 from git import Repo import portage +from pomu.util.cache import cached from pomu.util.fs import remove_file from pomu.util.result import Result @@ -17,7 +18,7 @@ class Repository(): @property def repo(self): - return Repo(repo_path) + return Repo(self.root) @property def pomu_dir(self): @@ -27,7 +28,7 @@ class Repository(): r = self.repo for wd, f in package.files: dst = path.join(self.root, wd) - os.makedirs(dst) + makedirs(dst) copy2(path.join(package.root, wd, f), dst) r.index.add(path.join(dst, f)) with open(path.join(self.pomu_dir, package.name), 'w') as f: @@ -51,15 +52,16 @@ class Repository(): return Result.Ok('Removed package ' + package.name + ' successfully') def remove_package(self, name): - pf = path.join(self.pomu_dir, package.name) + r = self.repo + pf = path.join(self.pomu_dir, name) if not path.isfile(pf): return Result.Err('Package not found') with open(pf, 'w') as f: for insf in f: remove_file(path.join(self.root, insf)) remove_file(pf) - r.commit('Removed package ' + package.name + ' successfully') - return Result.Ok('Removed package ' + package.name + ' successfully') + r.commit('Removed package ' + name + ' successfully') + return Result.Ok('Removed package ' + name + ' successfully') @@ -82,6 +84,13 @@ def pomu_status(repo_path): """Check if pomu is enabled for a repository at a given path""" return path.isdir(path.join(repo_path, 'metadata', 'pomu')) +def pomu_active_portage_repo(): + """Returns a portage repo, for which pomu is enabled""" + for repo in portage_repos(): + if pomu_status(portage_repo_path(repo)): + return repo + return None + @cached def pomu_active_repo(no_portage=None, repo_path=None): """Returns a repo for which pomu is enabled""" |