X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=ud-gpgsigfetch;fp=ud-gpgsigfetch;h=592b3198fe4da215694ebd97bdc1dfe4a1282a66;hb=a86d975ac15e074f142c75ba5c74596be92e740d;hp=ed8d43a1c6d0c694ec82603c2c9622bea81261d9;hpb=d34f4cb87a80d211f07fc1bfb2b9a630d1346e7c;p=mirror%2Fuserdir-ldap.git diff --git a/ud-gpgsigfetch b/ud-gpgsigfetch index ed8d43a..592b319 100755 --- a/ud-gpgsigfetch +++ b/ud-gpgsigfetch @@ -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();