]> arthur.barton.de Git - bup.git/blob - t/id-other-than
cleanup-mounts-under: Don't fail when /proc/mounts isn't readable
[bup.git] / t / id-other-than
1 #!/usr/bin/env python
2
3 import grp
4 import pwd
5 import sys
6
7 def usage():
8     print >> sys.stderr, "Usage: id-other-than <--user|--group> ID [ID ...]"
9
10 if len(sys.argv) < 2:
11     usage()
12     sys.exit(1)
13
14 def is_integer(x):
15     try:
16         int(x)
17         return True
18     except ValueError, e:
19         return False
20
21 excluded_ids = set(int(x) for x in sys.argv[2:] if is_integer(x))
22 excluded_names = (x for x in sys.argv[2:] if not is_integer(x))
23
24 if sys.argv[1] == '--user':
25     for x in excluded_names:
26         excluded_ids.add(pwd.getpwnam(x).pw_uid)
27     for x in pwd.getpwall():
28         if x.pw_uid not in excluded_ids:
29             print x.pw_name + ':' + str(x.pw_uid)
30             sys.exit(0)
31 elif sys.argv[1] == '--group':
32     for x in excluded_names:
33         excluded_ids.add(grp.getgrnam(x).gr_gid)
34     for x in grp.getgrall():
35         if x.gr_gid not in excluded_ids:
36             print x.gr_name + ':' + str(x.gr_gid)
37             sys.exit(0)
38 else:
39     usage()
40     sys.exit(1)