aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMykyta Holubakha <hilobakho@gmail.com>2017-06-19 04:24:06 +0300
committerMykyta Holubakha <hilobakho@gmail.com>2017-06-19 04:24:06 +0300
commit7334e41998fb99dfd10dcf9fd977967ceb0f79f2 (patch)
tree07d821e70b1d72de917d0f6470bbbc184afc159e /pomu/repo/repo.py
parentmajor refactoring of pomu package source module (diff)
downloadpomu-7334e41998fb99dfd10dcf9fd977967ceb0f79f2.tar.gz
pomu-7334e41998fb99dfd10dcf9fd977967ceb0f79f2.tar.bz2
pomu-7334e41998fb99dfd10dcf9fd977967ceb0f79f2.zip
Numerous improvements and fixes
Documented most of the functions and classes. Added an option to fetch a package into a specified directory. Added a merge_into method to the Package class, which would merge it into a directory, and refactored repo::merge_package to use that. Extended the package class to store category, version and slot metadata. Added tests of the portage package source module.
Diffstat (limited to 'pomu/repo/repo.py')
-rw-r--r--pomu/repo/repo.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/pomu/repo/repo.py b/pomu/repo/repo.py
index 076b2b7..6434ed3 100644
--- a/pomu/repo/repo.py
+++ b/pomu/repo/repo.py
@@ -25,11 +25,10 @@ class Repository():
return path.join(self.root, 'metadata/pomu')
def merge(self, package):
+ """Merge a package into the repository"""
r = self.repo
+ package.merge(self.root).expect('Failed to merge package')
for wd, f in package.files:
- dst = path.join(self.root, wd)
- 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:
f.write('{}/{}'.format(wd, f))
@@ -38,6 +37,7 @@ class Repository():
return Result.Ok('Merged package ' + package.name + ' successfully')
def unmerge(self, package):
+ """Remove a package (by contents) from the repository"""
r = self.repo
for wd, f in package.files:
dst = path.join(self.root, wd)
@@ -52,6 +52,7 @@ class Repository():
return Result.Ok('Removed package ' + package.name + ' successfully')
def remove_package(self, name):
+ """Remove a package (by name) from the repository"""
r = self.repo
pf = path.join(self.pomu_dir, name)
if not path.isfile(pf):