diff --git a/salt/scripts.py b/salt/scripts.py index 04e17472e84..8b21608c28c 100644 --- a/salt/scripts.py +++ b/salt/scripts.py @@ -7,6 +7,7 @@ import functools import logging import os import signal +import subprocess import sys import threading import time @@ -585,3 +586,22 @@ def salt_unity(): sys.argv.pop(1) s_fun = getattr(sys.modules[__name__], "salt_{}".format(cmd)) s_fun() + + +def salt_pip(): + """ + Proxy to current python's pip + """ + command = [ + sys.executable, + "-m", + "pip", + ] + sys.argv[1:] + proc = subprocess.Popen(command) + ret = None + while ret is None: + try: + ret = proc.wait(0.1) + except subprocess.TimeoutExpired: + pass + sys.exit(ret) diff --git a/setup.py b/setup.py index 236d83f4c29..09b7bf97e72 100755 --- a/setup.py +++ b/setup.py @@ -1201,6 +1201,7 @@ class SaltDistribution(distutils.dist.Distribution): [ "salt-cp = salt.scripts:salt_cp", "salt-minion = salt.scripts:salt_minion", + "salt-pip = salt.scripts:salt_pip", ] ) entrypoints["console_scripts"] = scripts @@ -1221,6 +1222,7 @@ class SaltDistribution(distutils.dist.Distribution): "salt-syndic = salt.scripts:salt_syndic", "spm = salt.scripts:salt_spm", "salt-proxy = salt.scripts:salt_proxy", + "salt-pip = salt.scripts:salt_pip", ] ) entrypoints["console_scripts"] = scripts