1 |
commit: 951244c9ad5bd94f1b95931413c369ccc6670136 |
2 |
Author: Jauhien Piatlicki (jauhien) <piatlicki <AT> gmail <DOT> com> |
3 |
AuthorDate: Thu Aug 29 21:29:38 2013 +0000 |
4 |
Commit: Jauhien Piatlicki <piatlicki <AT> gmail <DOT> com> |
5 |
CommitDate: Thu Aug 29 21:29:38 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/g-sorcery.git;a=commit;h=951244c9 |
7 |
|
8 |
gs_db_tool/gs_db_tool: add_var with arbitrary code and a fixed value |
9 |
|
10 |
--- |
11 |
gs_db_tool/gs_db_tool.py | 15 ++++++++++++++- |
12 |
1 file changed, 14 insertions(+), 1 deletion(-) |
13 |
|
14 |
diff --git a/gs_db_tool/gs_db_tool.py b/gs_db_tool/gs_db_tool.py |
15 |
index 14e4930..94d8a14 100644 |
16 |
--- a/gs_db_tool/gs_db_tool.py |
17 |
+++ b/gs_db_tool/gs_db_tool.py |
18 |
@@ -28,7 +28,9 @@ def main(): |
19 |
p_ebuild_data_rename = p_ebuild_data_subparsers.add_parser('add_var') |
20 |
p_ebuild_data_rename.set_defaults(func=add_var) |
21 |
p_ebuild_data_rename.add_argument('name') |
22 |
+ p_ebuild_data_rename.add_argument('-f', '--function') |
23 |
p_ebuild_data_rename.add_argument('-l', '--lambda_function') |
24 |
+ p_ebuild_data_rename.add_argument('-v', '--value') |
25 |
|
26 |
p_ebuild_data_rename = p_ebuild_data_subparsers.add_parser('rename_var') |
27 |
p_ebuild_data_rename.set_defaults(func=rename_var) |
28 |
@@ -57,7 +59,13 @@ def transform_db(function): |
29 |
|
30 |
@transform_db |
31 |
def add_var(pkg_db, args): |
32 |
- if args.lambda_function: |
33 |
+ if args.function: |
34 |
+ for package, ebuild_data in pkg_db: |
35 |
+ exec(args.function) |
36 |
+ ebuild_data[args.name] = value |
37 |
+ pkg_db.add_package(package, ebuild_data) |
38 |
+ |
39 |
+ elif args.lambda_function: |
40 |
lmbd = "lambda ebuild_data: " + args.lambda_function |
41 |
f = eval(lmbd) |
42 |
for package, ebuild_data in pkg_db: |
43 |
@@ -65,6 +73,11 @@ def add_var(pkg_db, args): |
44 |
ebuild_data[args.name] = value |
45 |
pkg_db.add_package(package, ebuild_data) |
46 |
|
47 |
+ elif args.value: |
48 |
+ for package, ebuild_data in pkg_db: |
49 |
+ ebuild_data[args.name] = args.value |
50 |
+ pkg_db.add_package(package, ebuild_data) |
51 |
+ |
52 |
|
53 |
def show_all(pkg_db, args): |
54 |
pkg_db.read() |