#!/usr/bin/env python

#
# pubdb.py v0.1
#
# Purpose: Generate cdbmake formatted records for CDB public key db
# Author:  Pete McCormick
# Date:    April 28, 2007
#
# Usage:
#    cat users-key.txt | ./pubdb.py | cdbmake pubdb.cdb .cdbtmp
#
#  where the input are lines of user and pubkey file pairs, e.g.:
#
#    pete     /home/pete/.ssh/id_rsa.pub
#    mike     /tmp/id_rsa.pub
#
# For more information, and the original OpenSSH patch, visit:
#    http://blonos.com/openssh-cdb/
#
# For cdbmake, see DJB's cdb pages: http://cr.yp.to/cdb.html
#

import sys

def gen_record(user, pubkey):
  try:
    pubkey = file(pubkey, 'r').read()
    print "+%d,%d:%s->%s" % (len(user), len(pubkey), user, pubkey)

  except IOError, err:
    print >> sys.stderr, err

if __name__ == '__main__':
  for line in sys.stdin.readlines():
    line = line.trim()
    if line == '':
      continue

    (user, pubkey) = line.split()
    gen_record(user, pubkey)

  print


