]> arthur.barton.de Git - bup.git/blobdiff - t/id-other-than
get: adjust for python 3 and test there
[bup.git] / t / id-other-than
index 25e7fbf5e90f17d5eaeffd95c172636d812842f6..eb6aead51281c1f52302fe1931d3a3f8a3514877 100755 (executable)
@@ -1,11 +1,18 @@
-#!/usr/bin/env python
+#!/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 ID [ID ...]"
+    print >> sys.stderr, "Usage: id-other-than <--user|--group> ID [ID ...]"
 
 if len(sys.argv) < 2:
     usage()
@@ -18,17 +25,21 @@ def is_integer(x):
     except ValueError, e:
         return False
 
-excluded_ids = frozenset(int(x) for x in sys.argv[2:] if is_integer(x))
-excluded_names = frozenset(x for x in sys.argv[2:] if not is_integer(x))
+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_name not in excluded_names and x.pw_uid not in excluded_ids:
+        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_name not in excluded_names and x.gr_gid not in excluded_ids:
+        if x.gr_gid not in excluded_ids:
             print x.gr_name + ':' + str(x.gr_gid)
             sys.exit(0)
 else: