aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJauhien Piatlicki (jauhien) <piatlicki@gmail.com>2013-09-04 16:35:41 +0200
committerJauhien Piatlicki (jauhien) <piatlicki@gmail.com>2013-09-04 16:35:41 +0200
commit28e010cc203fb9415d9d88677681ff03f8be5072 (patch)
tree0a77b0c73d44df5fd1d3157c95a254f46195914f /gs_db_tool
parentg_sorcery/package_db: fix a stupid bug in sync function (diff)
downloadg-sorcery-28e010cc203fb9415d9d88677681ff03f8be5072.tar.gz
g-sorcery-28e010cc203fb9415d9d88677681ff03f8be5072.tar.bz2
g-sorcery-28e010cc203fb9415d9d88677681ff03f8be5072.zip
gs_db_tool/gs_db_tool: for_all added
Diffstat (limited to 'gs_db_tool')
-rw-r--r--gs_db_tool/gs_db_tool.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/gs_db_tool/gs_db_tool.py b/gs_db_tool/gs_db_tool.py
index 94d8a14..5594a12 100644
--- a/gs_db_tool/gs_db_tool.py
+++ b/gs_db_tool/gs_db_tool.py
@@ -40,6 +40,10 @@ def main():
p_ebuild_data_show_all = p_ebuild_data_subparsers.add_parser('show_all')
p_ebuild_data_show_all.set_defaults(func=show_all)
+ p_ebuild_data_for_all = p_ebuild_data_subparsers.add_parser('for_all')
+ p_ebuild_data_for_all.add_argument('function')
+ p_ebuild_data_for_all.set_defaults(func=for_all)
+
p_sync = subparsers.add_parser('sync')
p_sync.set_defaults(func=sync)
p_sync.add_argument('uri')
@@ -57,6 +61,19 @@ def transform_db(function):
return transformator
+def read_db(function):
+ def reader(pkg_db, args):
+ pkg_db.read()
+ function(pkg_db, args)
+ return reader
+
+
+@read_db
+def for_all(pkg_db, args):
+ for package, ebuild_data in pkg_db:
+ exec(args.function)
+
+
@transform_db
def add_var(pkg_db, args):
if args.function:
@@ -79,8 +96,8 @@ def add_var(pkg_db, args):
pkg_db.add_package(package, ebuild_data)
+@read_db
def show_all(pkg_db, args):
- pkg_db.read()
for package, ebuild_data in pkg_db:
print(package)
print('-' * len(str(package)))