Author: elias
Date: Thu Oct 9 21:09:00 2008
New Revision: 29981
URL: http://svn.gna.org/viewcvs/wesnoth?rev=29981&view=rev
Log:
Added two options to wesnto_addon_manager:
--tar Causes tarballs to be generated for each addon newly downloaded with
--download.
--url=... Adds download links to the --html output, with the given base URL.
Modified:
trunk/data/tools/addon_manager/html.py
trunk/data/tools/wesnoth_addon_manager
Modified: trunk/data/tools/addon_manager/html.py
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/data/tools/addon_manager/html.py?rev=29981&r1=29980&r2=29981&view=diff
==============================================================================
--- trunk/data/tools/addon_manager/html.py (original)
+++ trunk/data/tools/addon_manager/html.py Thu Oct 9 21:09:00 2008
@@ -1,6 +1,6 @@
import time, os, glob, sys
-def output(path, data):
+def output(path, url, data):
try: os.mkdir(path)
except OSError: pass
@@ -74,7 +74,13 @@
w("<td><b>%s</b><br/>" % name)
w("Version: %s<br/>" % v("version", "unknown"))
w("Author: %s</td>" % v("author", "unknown"))
- w("<td>%.1fMB</td>" % (float(v("size", "unknown")) / 1024 / 1024))
+ MB = 1024 * 1024
+ w("<td>%.2fMB" % (float(v("size", "unknown")) / MB))
+ if url:
+ link = url.rstrip("/") + "/" + v("name") + ".tar.bz2"
+ w("<br/><a href=\"%s\">download</a></td>" % link)
+ else:
+ w("</td>")
w("<td><b>%s</b> down<br/>" % v("downloads", "unknown"))
w("%s up</td>" % v("uploads", "unknown"))
t = time.localtime(int(v("timestamp", "unknown")))
Modified: trunk/data/tools/wesnoth_addon_manager
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/data/tools/wesnoth_addon_manager?rev=29981&r1=29980&r2=29981&view=diff
==============================================================================
--- trunk/data/tools/wesnoth_addon_manager (original)
+++ trunk/data/tools/wesnoth_addon_manager Thu Oct 9 21:09:00 2008
@@ -28,7 +28,7 @@
optionparser.add_option("-a", "--address", help = "specify server address",
default = "add-ons.wesnoth.org")
optionparser.add_option("--html",
- help = "Output HTML overview into the givendirectory.",)
+ help = "Output a HTML overview into the given directory.",)
optionparser.add_option("-p", "--port",
help = "specify server port or BfW version (%s)" % " or ".join(
map(lambda x: x[1], CampaignClient.portmap)),
@@ -51,6 +51,9 @@
"name may be a Python regexp matched against all add-on names " +
"(specify the path where to put it with -c, " +
"current directory will be used by default)")
+ optionparser.add_option("-t", "--tar", action = "store_true",
+ help = "When used together with --download, create tarballs of any " +
+ "downloaded addons.")
optionparser.add_option("-u", "--upload",
help = "Upload an add-on. " +
"UPLOAD should be either the name of an add-on subdirectory," +
@@ -73,6 +76,9 @@
optionparser.add_option("-R", "--raw-download",
action = "store_true",
help = "download as a binary WML packet")
+ optionparser.add_option("--url", help = "When used with --html, " +
+ "a download link will be added for each campaign, with the given " +
+ "base URL.")
optionparser.add_option("-U", "--unpack",
help = "unpack the file UNPACK as a binary WML packet " +
"(specify the add-on path with -c)")
@@ -110,9 +116,9 @@
else:
decoded = cs.decode(mythread.data)
print "Unpacking %s..." % name
- cs.unpackdir(decoded, cdir, verbose = options.verbose)
- d = os.path.join(cdir, name)
- info = os.path.join(d, "_info.cfg")
+ cs.unpackdir(decoded, cdir, verbose = options.verbose)
+ dirname = os.path.join(cdir, name)
+ info = os.path.join(dirname, "_info.cfg")
try:
f = file(info, "w")
f.write("[info]\nversion=\"%s\"\nuploads=\"%s\"\n[/info]\n" %
@@ -123,6 +129,13 @@
for message in decoded.find_all("message", "error"):
print message.get_text_val("message")
+ if options.tar:
+ tarname = cdir + "/" + name + ".tar.bz2"
+ if options.verbose:
+ sys.stderr.write("Creating tarball %(tarname)s.\n" %
+ locals())
+ os.system("tar cjf %(tarname)s %(dirname)s" % locals())
+
def get_info(name):
"""
Get info for a locally installed add-on. It expects a direct path
@@ -144,7 +157,7 @@
data = cs.list_campaigns()
if data:
import addon_manager.html
- addon_manager.html.output(options.html, data)
+ addon_manager.html.output(options.html, options.url, data)
else:
sys.stderr.write("Could not connect.\n")
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits