1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #! /usr/bin/env python
- import os, sys
- import cgi, cgitb
- cgitb.enable()
- PKGDIR = os.environ.get('PKGDIR', os.path.abspath('../packages'))
- form = cgi.FieldStorage()
- def getvalue(x):
- v = form.getvalue(x)
- if not v:
- print("Status: 413\ncontent-type: text/plain\n\nmissing %s\n" % x)
- return v
- pkgname = getvalue('pkgname')
- pkgver = getvalue('pkgver')
- pkgfile = getvalue('pkgfile')
- filename = os.path.join(PKGDIR, pkgname, pkgver, pkgfile)
- if not os.path.exists(filename):
- filename = filename + '.tarfile'
- if not os.path.exists(filename):
- print("Status: 404\ncontent-type: text/plain\n\nInvalid package %r\n" % filename)
- length = os.stat(filename).st_size
- print("Content-Type: application/octet-stream")
- print("Content-Disposition: attachment; filename=f.bin")
- print("Content-length: %s" % length)
- print("")
- with open(filename, 'rb') as f:
- while True:
- buf = f.read(8192)
- if buf:
- sys.stdout.write(buf)
- else:
- break
|