Add support for SSHUTTLE_ARGS environment variable

This commit is contained in:
Alex Jurkiewicz 2023-08-09 09:50:34 +08:00 committed by Brian May
parent 3c3f5de672
commit 0ddebdeee6
2 changed files with 22 additions and 1 deletions

View File

@ -321,6 +321,18 @@ annotations. For example::
192.168.63.0/24 192.168.63.0/24
Environment Variable
--------------------
You can specify command line options with the `SSHUTTLE_ARGS` environment
variable. If a given option is defined in both the environment variable and
command line, the value on the command line will take precedence.
For example::
SSHUTTLE_ARGS="-e 'ssh -v' --dns" sshuttle -r example.com 0/0
Examples Examples
-------- --------

View File

@ -1,5 +1,8 @@
import os
import re import re
import shlex
import socket import socket
import sys
import sshuttle.helpers as helpers import sshuttle.helpers as helpers
import sshuttle.client as client import sshuttle.client as client
import sshuttle.firewall as firewall import sshuttle.firewall as firewall
@ -11,7 +14,13 @@ from sshuttle.sudoers import sudoers
def main(): def main():
opt = parser.parse_args() if 'SSHUTTLE_ARGS' in os.environ:
env_args = shlex.split(os.environ['SSHUTTLE_ARGS'])
else:
env_args = []
args = [*env_args, *sys.argv[1:]]
opt = parser.parse_args(args)
if opt.sudoers_no_modify: if opt.sudoers_no_modify:
# sudoers() calls exit() when it completes # sudoers() calls exit() when it completes