#!/bin/sh """": # -*-python-*- bup_python="$(dirname "$0")/../cmd/bup-python" || exit $? exec "$bup_python" "$0" ${1+"$@"} """ # end of bup preamble from __future__ import absolute_import import grp import pwd import sys def usage(): print >> sys.stderr, "Usage: id-other-than <--user|--group> ID [ID ...]" if len(sys.argv) < 2: usage() sys.exit(1) def is_integer(x): try: int(x) return True except ValueError, e: return False excluded_ids = set(int(x) for x in sys.argv[2:] if is_integer(x)) excluded_names = (x for x in sys.argv[2:] if not is_integer(x)) if sys.argv[1] == '--user': for x in excluded_names: excluded_ids.add(pwd.getpwnam(x).pw_uid) for x in pwd.getpwall(): if x.pw_uid not in excluded_ids: print x.pw_name + ':' + str(x.pw_uid) sys.exit(0) elif sys.argv[1] == '--group': for x in excluded_names: excluded_ids.add(grp.getgrnam(x).gr_gid) for x in grp.getgrall(): if x.gr_gid not in excluded_ids: print x.gr_name + ':' + str(x.gr_gid) sys.exit(0) else: usage() sys.exit(1)