-
Notifications
You must be signed in to change notification settings - Fork 4
/
dnf-wrapper
executable file
·64 lines (51 loc) · 1.52 KB
/
dnf-wrapper
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/env python3
import sys
import os
import subprocess
import pprint
main_function_map = {}
def main_function(func):
global main_function_map
main_function_map[func.__name__.replace('_','-')] = func
return func
@main_function
def din(args):
r = subprocess.call(['sudo', 'dnf', 'install', '-y'] + args)
sys.exit(r)
@main_function
def dinlocal(args):
r = subprocess.call(['sudo', 'dnf', 'install', '-y'] + args)
sys.exit(r)
@main_function
def dre(args):
r = subprocess.call(['sudo', 'dnf', 'remove', '-y'] + args)
sys.exit(r)
@main_function
def dgin(args):
r = subprocess.call(['sudo', 'dnf', 'group', 'install', '-y'] + args)
sys.exit(r)
@main_function
def dupdate(args):
r = subprocess.call(['sudo', 'dnf', 'update', '-y', '--best', '--allowerasing'] + args)
sys.exit(r)
@main_function
def dlist(args):
r = subprocess.call(['sudo', 'dnf', 'list'] + args)
sys.exit(r)
@main_function
def dbuilddep(args):
# requires 'dnf-plugins-core' to be installed
r = subprocess.call(['sudo', 'dnf', 'builddep', '-y'] + args)
sys.exit(r)
def main_function_dispatch(name, args):
try:
f = main_function_map[name]
except KeyError:
sys.stderr.write('%s is not a valid command name. Valid ones are:\n' % (name,))
pprint.pprint(sorted(main_function_map.keys()), stream=sys.stderr)
sys.exit(2)
f(args)
def program_name():
return os.path.basename(sys.argv[0])
if __name__ == '__main__':
main_function_dispatch(program_name(), sys.argv[1:])