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
|
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,
|
After setting up [binfmt] to use wine for windows binaries,
|
||||||
you can run GStreamer tools under wine by running:
|
you can run GStreamer tools under wine by running:
|
||||||
|
|
||||||
|
|
13
gst-env.py
13
gst-env.py
|
@ -7,6 +7,7 @@ import os
|
||||||
import platform
|
import platform
|
||||||
import re
|
import re
|
||||||
import site
|
import site
|
||||||
|
import shlex
|
||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
@ -371,6 +372,10 @@ if __name__ == "__main__":
|
||||||
parser.add_argument("--winepath",
|
parser.add_argument("--winepath",
|
||||||
default='',
|
default='',
|
||||||
help="Exra path to set to WINEPATH.")
|
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()
|
options, args = parser.parse_known_args()
|
||||||
|
|
||||||
if not os.path.exists(options.builddir):
|
if not os.path.exists(options.builddir):
|
||||||
|
@ -440,6 +445,12 @@ if __name__ == "__main__":
|
||||||
tmprc.flush()
|
tmprc.flush()
|
||||||
env['ZDOTDIR'] = tmpdir.name
|
env['ZDOTDIR'] = tmpdir.name
|
||||||
try:
|
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:
|
except subprocess.CalledProcessError as e:
|
||||||
exit(e.returncode)
|
exit(e.returncode)
|
||||||
|
|
Loading…
Reference in a new issue