mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
Remove Tiamat's run.py
entry point
Signed-off-by: Pedro Algarvio <palgarvio@vmware.com>
This commit is contained in:
parent
da7fbf8c0c
commit
8bdb2cd1e8
1 changed files with 0 additions and 119 deletions
119
run.py
119
run.py
|
@ -1,119 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
# see issue: https://gitlab.com/saltstack/open/salt-pkg/-/issues/19
|
||||
import contextlib
|
||||
import multiprocessing
|
||||
import os
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
import _pyio
|
||||
import tiamatpip.cli
|
||||
import tiamatpip.configure
|
||||
import tiamatpip.utils
|
||||
|
||||
import salt.scripts
|
||||
import salt.utils.platform
|
||||
|
||||
AVAIL = (
|
||||
"minion",
|
||||
"master",
|
||||
"call",
|
||||
"api",
|
||||
"cloud",
|
||||
"cp",
|
||||
"extend",
|
||||
"key",
|
||||
"proxy",
|
||||
"pip",
|
||||
"run",
|
||||
"shell",
|
||||
"spm",
|
||||
"ssh",
|
||||
"support",
|
||||
"syndic",
|
||||
"python",
|
||||
)
|
||||
|
||||
|
||||
if "TIAMAT_PIP_PYPATH" in os.environ:
|
||||
PIP_PATH = pathlib.Path(os.environ["TIAMAT_PIP_PYPATH"]).resolve()
|
||||
elif not sys.platform.startswith("win"):
|
||||
PIP_PATH = pathlib.Path(f"{os.sep}opt", "saltstack", "salt", "pypath")
|
||||
else:
|
||||
PIP_PATH = pathlib.Path(os.getenv("LocalAppData"), "salt", "pypath")
|
||||
with contextlib.suppress(PermissionError):
|
||||
PIP_PATH.mkdir(mode=0o755, parents=True, exist_ok=True)
|
||||
tiamatpip.configure.set_user_base_path(PIP_PATH)
|
||||
|
||||
|
||||
def py_shell():
|
||||
if not sys.platform.startswith("win"):
|
||||
# optional, will allow Up/Down/History in the console
|
||||
import readline
|
||||
import code
|
||||
|
||||
variables = globals().copy()
|
||||
variables.update(locals())
|
||||
shell = code.InteractiveConsole(variables)
|
||||
shell.interact()
|
||||
|
||||
|
||||
def python_runtime():
|
||||
import traceback
|
||||
|
||||
# extract the absolute script path to alter sys.path and specific dunder variables
|
||||
script = pathlib.Path(sys.argv[2]).expanduser().resolve()
|
||||
sys.path.insert(0, str(script.parent))
|
||||
|
||||
# update passed args so they don't start with "<binary> python"
|
||||
sys.argv[:] = sys.argv[2:]
|
||||
exec_locals = {"__name__": "__main__", "__file__": str(script), "__doc__": None}
|
||||
with open(script, encoding="utf-8") as rfh:
|
||||
try:
|
||||
exec(rfh.read(), exec_locals)
|
||||
except Exception:
|
||||
traceback.print_exc()
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
def redirect(argv):
|
||||
"""
|
||||
Change the args and redirect to another salt script
|
||||
"""
|
||||
if len(argv) < 2:
|
||||
msg = "Must pass in a salt command, available commands are:"
|
||||
for cmd in AVAIL:
|
||||
msg += f"\n{cmd}"
|
||||
print(msg, file=sys.stderr, flush=True)
|
||||
sys.exit(1)
|
||||
cmd = sys.argv[1]
|
||||
if cmd == "shell":
|
||||
py_shell()
|
||||
return
|
||||
if cmd == "python":
|
||||
if len(argv) < 3:
|
||||
msg = "Must pass script location to this command"
|
||||
print(msg, file=sys.stderr, flush=True)
|
||||
sys.exit(1)
|
||||
|
||||
python_runtime()
|
||||
return
|
||||
if tiamatpip.cli.should_redirect_argv(argv):
|
||||
tiamatpip.cli.process_pip_argv(argv)
|
||||
return
|
||||
if cmd not in AVAIL:
|
||||
# Fall back to the salt command
|
||||
args = ["salt"]
|
||||
s_fun = salt.scripts.salt_main
|
||||
else:
|
||||
args = [f"salt-{cmd}"]
|
||||
sys.argv.pop(1)
|
||||
s_fun = getattr(salt.scripts, f"salt_{cmd}")
|
||||
args.extend(argv[1:])
|
||||
with tiamatpip.utils.patched_sys_argv(args):
|
||||
s_fun()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
multiprocessing.freeze_support()
|
||||
redirect(sys.argv)
|
Loading…
Add table
Reference in a new issue