#!/usr/local/bin/python2.1

import sys, os
import GnuPGInterface
import commands

passphrase = sys.argv[1]
files = sys.argv[2:]

gnupg = GnuPGInterface.GnuPG()
upload = 1

url = 'http://www.handhelds.org/cgi-bin/upload-package.cgi'

for f in files:
    gnupg.passphrase = passphrase
    gnupg.options.recipients = ['423D317E']
    gnupg.options.meta_interactive = 0
    gnupg.options.armor = 1
    sys.stderr.write("processing file: %s\n" % (f,))
    filedict = {'stdin': open(f, "r"), 'stdout': open(f + ".asc", "w")}
    p1 = gnupg.run( ['--sign', '-b'], create_fhs=['passphrase'], attach_fhs=filedict)
    p1.handles['passphrase'].write(passphrase)
    p1.handles['passphrase'].close()
    p1.wait()
    if upload:
        sys.stderr.write('  done\n')
        sys.stderr.write('uploading ...')
        (status, outtext) = commands.getstatusoutput('curl -m 6000 -F feedname=unstable -F filename=@%s -F signaturefilename=@%s -F update_index=0 %s' % (f, f+'.asc', url))
        sys.stderr.write('done\n')
        sys.stderr.write('status=%s\n' % (status,))
        sys.stderr.write(outtext)

if upload:
    sys.stderr.write('updating package index ...')
    (status, outtext) = commands.getstatusoutput('curl -m 6000 -F feedname=unstable -F update_index=1 %s' % (url))
    sys.stderr.write('done\n')
    sys.stderr.write('status=%s\n' % (status,))
    sys.stderr.write(outtext)
   
