diff options
-rw-r--r-- | README.md | 10 | ||||
-rwxr-xr-x | gst-env.py | 13 |
2 files changed, 22 insertions, 1 deletions
@@ -314,6 +314,16 @@ You can get into the development environment the usual way: ninja -C $BUILDDIR/ devenv ``` +Alternatively, if you'd rather not start a shell in your workflow, you +can mutate the current environment into a suitable state like so: + +``` +gst-env.py --only-environment +``` + +This will print output suitable for an sh-compatible `eval` function, +just like `ssh-agent -s`. + After setting up [binfmt] to use wine for windows binaries, you can run GStreamer tools under wine by running: diff --git a/gst-env.py b/gst-env.py index 2f83fc1b82..86bb32bea0 100755 --- a/gst-env.py +++ b/gst-env.py @@ -7,6 +7,7 @@ import os import platform import re import site +import shlex import shutil import subprocess import sys @@ -371,6 +372,10 @@ if __name__ == "__main__": parser.add_argument("--winepath", default='', help="Exra path to set to WINEPATH.") + parser.add_argument("--only-environment", + action='store_true', + default=False, + help="Do not start a shell, only print required environment.") options, args = parser.parse_known_args() if not os.path.exists(options.builddir): @@ -440,6 +445,12 @@ if __name__ == "__main__": tmprc.flush() env['ZDOTDIR'] = tmpdir.name try: - exit(subprocess.call(args, close_fds=False, env=env)) + if options.only_environment: + for name, value in env.items(): + print('{}={}'.format(name, shlex.quote(value))) + print('export {}'.format(name)) + else: + exit(subprocess.call(args, close_fds=False, env=env)) + except subprocess.CalledProcessError as e: exit(e.returncode) |