- for krf in ['master', 'keyring.pub']:
- if not OS.path.exists(krf): continue
- kr = C.KeyFile(krf)
- for k in kr.itervalues():
- if k.exptime == C.KEXP_FOREVER: continue
- elif k.exptime == C.KEXP_EXPIRE: left = -1
- else: left = k.exptime - now
- if left < 0:
- print "key `%s' HAS EXPIRED" % k.tag
- elif left < thresh:
- if left >= 86400: n, u, uu = left // 86400, 'day', 'days'
- else: n, u, uu = left // 3600, 'hour', 'hours'
- print "key `%s' EXPIRES in %d %s" % (k.tag, n, n == 1 and u or uu)
+ if k.exptime == C.KEXP_FOREVER: return None
+ elif k.exptime == C.KEXP_EXPIRE: left = -1
+ else: left = k.exptime - now
+ if left < 0:
+ return "key `%s' HAS EXPIRED" % k.tag
+ elif left < thresh:
+ if left >= 86400: n, u, uu = left // 86400, 'day', 'days'
+ else: n, u, uu = left // 3600, 'hour', 'hours'
+ return "key `%s' EXPIRES in %d %s" % (k.tag, n, n == 1 and u or uu)
+ else:
+ return None
+
+def cmd_check(args):
+ if OS.path.exists('keyring.pub'):
+ for k in C.KeyFile('keyring.pub').itervalues():
+ whinge = check_key(k)
+ if whinge is not None: print whinge
+ if OS.path.exists('master'):
+ whinges = []
+ for k in C.KeyFile('master').itervalues():
+ whinge = check_key(k)
+ if whinge is None: break
+ whinges.append(whinge)
+ else:
+ for whinge in whinges: print whinge