aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJauhien Piatlicki (jauhien) <piatlicki@gmail.com>2013-08-29 23:29:38 +0200
committerJauhien Piatlicki (jauhien) <piatlicki@gmail.com>2013-08-29 23:29:38 +0200
commit951244c9ad5bd94f1b95931413c369ccc6670136 (patch)
treeba565fccd77442452212a7620f5dbf3d2c7db6cb
parentinstall gs-db-tool (diff)
downloadg-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
-rw-r--r--gs_db_tool/gs_db_tool.py15
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()