more gpg touch ups
[mirror/userdir-ldap.git] / ud-gpgsigfetch
index ed8d43a..592b319 100755 (executable)
@@ -1,18 +1,5 @@
 #!/usr/bin/env python
 # -*- mode: python -*-
-# This script tries to match key fingerprints from a keyring with user
-# name in a directory. When an unassigned key is found a heuristic match
-# against the keys given cn/sn and the directory is performed to try to get
-# a matching. Generally this works about 90% of the time, matching is fairly
-# strict. In the event a non-match a fuzzy sounds-alike search is performed
-# and the results printed to aide the user.
-#
-# GPG is automatically invoked with the correct magic special options,
-# pass the names of all the valid key rings on the command line.
-#
-# The output report will list what actions were taken. Keys that are present
-# in the directory but not in the key ring will be removed from the 
-# directory. 
 
 import string, re, time, ldap, getopt, sys, pwd, posix;
 from userdir_gpg import *;
@@ -24,10 +11,6 @@ AdminUser = pwd.getpwuid(posix.getuid())[0];
 for (switch, val) in options:
    if (switch == '-o'):
       Output = val
-   elif (switch == '-m'):
-       LoadOverride(val);
-   elif (switch == '-a'):
-       NoAct = 0;
 
 if len(arguments) == 0:
    print "Give some keyrings to probe";
@@ -41,11 +24,10 @@ for x in arguments:
       Args.append("./"+x);
    else:
       Args.append(x);
+Args.append("--fast-list-mode");
 Args.append("--list-sigs");
 Args = Args + GPGSearchOptions + [" 2> /dev/null"]
-print string.join(Args," ")
-#Keys = os.popen(string.join(Args," "),"r");
-Keys = os.popen("cat sigs","r");
+Keys = os.popen(string.join(Args," "),"r");
 
 # Loop over the GPG key file
 HaveKeys = {};
@@ -78,7 +60,7 @@ OldArgs = Args;
 Args = Args + GPGSearchOptions + [" 2> /dev/null"]
 Keys = os.popen(string.join(Args," "),"r");
 
-print "Reading keys from output";
+print "Reading keys from output ring";
 while(1):
    Line = Keys.readline();
    if Line == "":
@@ -105,4 +87,11 @@ while (I > 0):
    OldI = I;
    I = I - 20;
    if I < 0: I = 0;
-   print string.join(Args+KeysToFetch[I:OldI]," ") 
+   print string.join(Args+KeysToFetch[I:OldI]," ")
+   Fetcher = os.popen(string.join(Args+KeysToFetch[I:OldI]," "),"r");
+   while(1):
+      Line = Fetcher.readline();
+      if Line == "":
+         break;
+      print Line;
+   Fetcher.close();