aboutsummaryrefslogtreecommitdiffstats
path: root/build/scripts/generic_cmd.py
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-10-19 17:59:18 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-10-19 17:59:18 +0000
commitceddbfe68f6ec7949a4062716c8f9840a59c6888 (patch)
treeabfecadbb9c1e5aea40701dd20d902cb7bccd962 /build/scripts/generic_cmd.py
parent07f2e60d02d95eab14a86a4b9469db1af7795001 (diff)
parentd920c750e476fa2dc80c45f990d9456b1afeadd1 (diff)
downloadydb-ceddbfe68f6ec7949a4062716c8f9840a59c6888.tar.gz
Merge branch 'rightlib' into mergelibs-241019-1758
Diffstat (limited to 'build/scripts/generic_cmd.py')
-rw-r--r--build/scripts/generic_cmd.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/build/scripts/generic_cmd.py b/build/scripts/generic_cmd.py
new file mode 100644
index 0000000000..c850d244e8
--- /dev/null
+++ b/build/scripts/generic_cmd.py
@@ -0,0 +1,31 @@
+import os
+import sys
+import json
+import base64
+import subprocess
+
+
+if __name__ == '__main__':
+ p = sys.argv.index('--')
+ ctx = base64.b64decode(sys.argv[p + 1].encode()).decode()
+ kv = {}
+
+ for x in sys.argv[1:p]:
+ k, v = x.split('=')
+ ctx = ctx.replace(f'$({k})', v)
+ kv[k] = v
+
+ cmd = json.loads(ctx)
+
+ args = cmd['cmd_args']
+ cwd = cmd.get('cwd', kv['B'])
+
+ env = dict(**os.environ)
+ env['ARCADIA_ROOT_DISTBUILD'] = kv['S']
+ env.update(cmd['env'])
+
+ out = subprocess.check_output(args, env=env, cwd=cwd)
+
+ if stdout := cmd.get('stdout'):
+ with open(stdout, 'wb') as f:
+ f.write(out)