aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMykyta Holubakha <hilobakho@gmail.com>2017-06-11 18:19:24 +0300
committerMykyta Holubakha <hilobakho@gmail.com>2017-06-11 18:19:24 +0300
commitb7fedf6ba3bbf4dc8ed92332be1d35f30d228dfe (patch)
treee8e3c16b9d3e8e431899c466d675ab78dd08c11c
parentCli fixes (diff)
downloadpomu-b7fedf6ba3bbf4dc8ed92332be1d35f30d228dfe.tar.gz
pomu-b7fedf6ba3bbf4dc8ed92332be1d35f30d228dfe.tar.bz2
pomu-b7fedf6ba3bbf4dc8ed92332be1d35f30d228dfe.zip
Repository logic and import fixes
-rw-r--r--pomu/repo/repo.py21
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"""