- zipfile = os.path.normpath(os.path.join(directory, "../repository/", addon_dir + ".zip"))
- with open(zipfile, 'rb') as fin:
- md5 = hashlib.md5(fin.read()).hexdigest()
- url = "http://localhost:8000/repository/%s" % (addon_dir + ".zip")
- nfos = glob.glob(os.path.join(directory, addon_dir, "*.nfo"))
- if len(nfos) == 0:
- raise Exception(".nfo file missing")
- elif len(nfos) > 1:
- raise Exception("to many .nfo files")
- else:
- try:
- process_addon(os.path.join(directory, addon_dir), nfos[0], md5, url)
- except Exception, e:
- sys.stderr.write("%s: ignoring addon because: %s\n" % (addon_dir, e))
-sys.stdout.write(")\n\n;; EOF ;;\n")
+ addon_dir = os.path.join(directory, addon_dir)
+ if os.path.isdir(addon_dir):
+ print addon_dir
+ nfos = glob.glob(os.path.join(addon_dir, "*.nfo"))
+ if len(nfos) == 0:
+ raise Exception(".nfo file missing from %s" % addon_dir)
+ elif len(nfos) > 1:
+ raise Exception("to many .nfo files in %s" % addon_dir)
+ else:
+ try:
+ process_addon(fout, addon_dir, nfos[0], base_url, zipdir)
+ except Exception, e:
+ sys.stderr.write("%s: ignoring addon because: %s\n" % (addon_dir, e))
+ fout.write(")\n\n;; EOF ;;\n")
+
+
+if __name__ == "__main__":
+ parser = argparse.ArgumentParser(description='Addon Index/Zip Generator')
+ parser.add_argument('DIRECTORY', type=str, nargs=1,
+ help="directory containing the mods")
+ parser.add_argument('-o', '--output', metavar='FILE', type=str, required=False,
+ help="output file")
+ parser.add_argument('-z', '--zipdir', metavar="DIR", type=str, required=True,
+ help="generate zip files")
+ parser.add_argument('-u', '--url', metavar='FILE', type=str,
+ default="http://addons.supertux.googlecode.com/git/repository/",
+ help="base url")
+ args = parser.parse_args()
+
+ if args.output is None:
+ fout = sys.stdout
+ generate_index(fout, args.DIRECTORY[0], args.url, args.zipdir)
+ else:
+ with open(args.output, "w") as fout:
+ generate_index(fout, args.DIRECTORY[0], args.url, args.zipdir)