# Make a zipfile as old as it's latest entry

import os, sys, time, zipfile

if len(sys.argv) < 2:
    print "Usage: zipstamp file.zip ..."
    sys.exit(1)

for name in sys.argv[1:]:

    try:
        zip = zipfile.ZipFile(name)
    except IOError:
        print "Can't open %s" % name
        continue
    except zipfile.error:
        print "%s is not a zip archive" % name
        continue

    stamp = max(file.date_time for file in zip.infolist()
                if not file.filename.endswith("/"))

    mtime = time.mktime(stamp + (-1, -1, -1))
    zip.close()
    os.utime(name, (mtime, mtime))
