diff options
author | 2013-08-29 23:29:38 +0200 | |
---|---|---|
committer | 2013-08-29 23:29:38 +0200 | |
commit | 951244c9ad5bd94f1b95931413c369ccc6670136 (patch) | |
tree | ba565fccd77442452212a7620f5dbf3d2c7db6cb /gs_db_tool | |
parent | install gs-db-tool (diff) | |
download | g-sorcery-951244c9ad5bd94f1b95931413c369ccc6670136.tar.gz g-sorcery-951244c9ad5bd94f1b95931413c369ccc6670136.tar.bz2 g-sorcery-951244c9ad5bd94f1b95931413c369ccc6670136.zip |
gs_db_tool/gs_db_tool: add_var with arbitrary code and a fixed value
Diffstat (limited to 'gs_db_tool')
-rw-r--r-- | gs_db_tool/gs_db_tool.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gs_db_tool/gs_db_tool.py b/gs_db_tool/gs_db_tool.py index 14e4930..94d8a14 100644 --- a/gs_db_tool/gs_db_tool.py +++ b/gs_db_tool/gs_db_tool.py @@ -28,7 +28,9 @@ def main(): p_ebuild_data_rename = p_ebuild_data_subparsers.add_parser('add_var') p_ebuild_data_rename.set_defaults(func=add_var) p_ebuild_data_rename.add_argument('name') + p_ebuild_data_rename.add_argument('-f', '--function') p_ebuild_data_rename.add_argument('-l', '--lambda_function') + p_ebuild_data_rename.add_argument('-v', '--value') p_ebuild_data_rename = p_ebuild_data_subparsers.add_parser('rename_var') p_ebuild_data_rename.set_defaults(func=rename_var) @@ -57,7 +59,13 @@ def transform_db(function): @transform_db def add_var(pkg_db, args): - if args.lambda_function: + if args.function: + for package, ebuild_data in pkg_db: + exec(args.function) + ebuild_data[args.name] = value + pkg_db.add_package(package, ebuild_data) + + elif args.lambda_function: lmbd = "lambda ebuild_data: " + args.lambda_function f = eval(lmbd) for package, ebuild_data in pkg_db: @@ -65,6 +73,11 @@ def add_var(pkg_db, args): ebuild_data[args.name] = value pkg_db.add_package(package, ebuild_data) + elif args.value: + for package, ebuild_data in pkg_db: + ebuild_data[args.name] = args.value + pkg_db.add_package(package, ebuild_data) + def show_all(pkg_db, args): pkg_db.read() |