mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-02 21:48:55 +00:00
dev environment: allow printing only env without starting a shell
allow for workflows that don't want the gst scripts to start shells, this can be awkward for higher-level scripts setting up shells themselves. this is especially useful in combination with eval, and mimics the sort of thing you can do with ssh-agent -s.
This commit is contained in:
parent
7aaa11aa77
commit
c57dca5220
2 changed files with 22 additions and 1 deletions
10
README.md
10
README.md
|
@ -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:
|
||||
|
||||
|
|
11
gst-env.py
11
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:
|
||||
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)
|
||||
|
|
Loading…
Reference in a new issue