mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 00:55:19 +00:00
b483ff7323
This script allows all salt commands to be called from a single top level shell script
43 lines
961 B
Python
43 lines
961 B
Python
#!/usr/bin/env python2
|
|
|
|
# Import python libs
|
|
import sys
|
|
|
|
# Import salt libs
|
|
import salt.scripts
|
|
|
|
def get_avail():
|
|
'''
|
|
Return the available salt commands
|
|
'''
|
|
ret = []
|
|
for fun in dir(salt.scripts):
|
|
if fun.startswith('salt'):
|
|
ret.append(fun[5:])
|
|
return ret
|
|
|
|
def redirect():
|
|
'''
|
|
Change the args and redirect to another salt script
|
|
'''
|
|
avail = get_avail()
|
|
if len(sys.argv) < 2:
|
|
msg = 'Must pass in a salt command, available commands are:'
|
|
for cmd in avail:
|
|
msg += '\n{0}'.format(cmd)
|
|
print(msg)
|
|
sys.exit(1)
|
|
cmd = sys.argv[1]
|
|
if cmd not in avail:
|
|
# Fall back to the salt command
|
|
sys.argv[0] = 'salt'
|
|
s_fun = salt.scripts.salt_main
|
|
else:
|
|
sys.argv[0] = 'salt-{0}'.format(cmd)
|
|
sys.argv.pop(1)
|
|
s_fun = getattr(salt.scripts, 'salt_{0}'.format(cmd))
|
|
s_fun()
|
|
|
|
if __name__ == '__main__':
|
|
redirect()
|