diff options
author | 2013-09-04 16:35:41 +0200 | |
---|---|---|
committer | 2013-09-04 16:35:41 +0200 | |
commit | 28e010cc203fb9415d9d88677681ff03f8be5072 (patch) | |
tree | 0a77b0c73d44df5fd1d3157c95a254f46195914f | |
parent | g_sorcery/package_db: fix a stupid bug in sync function (diff) | |
download | g-sorcery-28e010cc203fb9415d9d88677681ff03f8be5072.tar.gz g-sorcery-28e010cc203fb9415d9d88677681ff03f8be5072.tar.bz2 g-sorcery-28e010cc203fb9415d9d88677681ff03f8be5072.zip |
gs_db_tool/gs_db_tool: for_all added
-rw-r--r-- | gs_db_tool/gs_db_tool.py | 19 |
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))) |