eoptasks: add possibility to define command shortcuts in config file

This commit is contained in:
Frédéric Péters 2021-01-22 22:51:21 +01:00
parent 8e4427dae6
commit b9a1ec6a2a
1 changed files with 16 additions and 2 deletions

View File

@ -20,6 +20,10 @@
# ignore = server1, server2
# stripsuffix = .entrouvert.org
#
# It is possible to add extra command shortcuts with additional sections, ex:
# [command:memcached.restart]
# cmd = sudo service memcached restart; /bin/true
#
# Examples:
#
# eoptasks -k test apt.upgrade
@ -221,8 +225,11 @@ def send_status_message(tmux_session_name, msg):
def command_window(args):
config = configparser.ConfigParser()
config.read(os.path.join(os.path.expanduser('~/.config/eoptasks.ini')))
tmux_session_name = args.session_name
cmd = {
builtin_cmds = {
'apt.update': 'sudo apt update',
'apt.upgrade': 'sudo apt update && sudo apt full-upgrade -y',
# collectstatic is useful after an upgrade of gadjo.
@ -250,7 +257,14 @@ def command_window(args):
'wcs.restart': '''sudo systemctl restart wcs; /bin/true''',
# puppet.update, unfortunately without proper error checking.
'puppet.update': '''sudo puppet agent -t || true''',
}.get(args.cmd, args.cmd)
}
if config.has_section('command:%s' % args.cmd):
cmd = config.get('command:%s' % args.cmd, 'cmd')
elif args.cmd in builtin_cmds:
cmd = builtin_cmds[args.cmd]
else:
cmd = args.cmd
if args.args:
cmd += ' ' + ' '.join(['"%s"' % x for x in args.args])
orig_cmd = cmd