(Arne Babenhauserheide)
2012-10-30: indent empty lines in functions to make outline-mode happy indent empty lines in functions to make outline-mode happy
diff --git a/staticsite.py b/staticsite.py
--- a/staticsite.py
+++ b/staticsite.py
@@ -114,7 +114,6 @@ def overviewlogstring(ui, repo, revs, te
t.show(ctx)
return ui.popbuffer()
-
def writeoverview(ui, repo, target, name):
"""Create the overview page"""
overview = ""
@@ -143,9 +142,9 @@ def writeoverview(ui, repo, target, name
overview += "<small>(" + str(len(incoming))
outgoing, fn, localother = getoutgoing(ui, repo, otheruri=forkuri, othername=forkname)
overview += "<small>↓↑</small>" + str(len(outgoing)) + ")</small> "
-
+
overview += "</p>"
-
+
# now add the 5 most recent log entries
# divert all following ui output to a string, so we can just use standard functions
overview += "\n<div id='shortlog'><h2>Changes (<a href='commits'>full changelog</a>)</h2>\n"
@@ -163,7 +162,7 @@ def writeoverview(ui, repo, target, name
for branch, heads in repo.branchmap().items():
if branch and branch != "default": # not default
branches.extend(heads)
-
+
try:
# FIXME: For some reason this does not seem to give the tags anymore.
tags = repo._tags
@@ -204,7 +203,7 @@ def writeoverview(ui, repo, target, name
overview += "<div id='readme'><h2>"+_("Readme")+"</h2>\n"
overview += readme
overview += "</div>"
-
+
# finish the overview
overview += templates["foot"]
indexfile = os.path.join(target, "index.html")
@@ -215,7 +214,7 @@ def writeoverview(ui, repo, target, name
def writelog(ui, repo, target, name):
"""Write the full changelog, in steps of 100."""
commits = os.path.join(target, "commits")
-
+
# create the folders
if not os.path.isdir(commits):
os.makedirs(commits)
@@ -223,7 +222,7 @@ def writelog(ui, repo, target, name):
d = commits+"-"+str(i+1)+"00"
if not os.path.isdir(d):
os.makedirs(d)
-
+
# create the log files
t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
t.use_template(templates["commitlog"].replace("{relativepath}", "../"))
@@ -244,13 +243,13 @@ def writelog(ui, repo, target, name):
else:
d = commits
logs.append([os.path.join(d, "index.html"), ""])
-
+
logs[-1][-1] += templates["head"].replace("{reponame}", "<a href='../'>"+name+"</a>").replace("{title}", name)
for c in range(ck*100+1, min(len(repo.changelog)+1, (ck+1)*100)):
ctx = repo.changectx(str(-c))
t.show(ctx)
logs[-1][-1] += ui.popbuffer()
-
+
for filepath,data in logs:
data += templates["foot"].replace("{reponame}", "<a href='../'>"+name+"</a>")
if not contentequals(filepath,data):
@@ -259,7 +258,7 @@ def writelog(ui, repo, target, name):
def getlocalother(repo, ui, otheruri, othername):
"""Get a local clone of the repo identified by uri and name within .hg/paths.
-
+
This creates that local clone!
"""
# if we cannot get the changes via bundlerepo, we create a
@@ -297,7 +296,7 @@ def getincoming(ui, repo, otheruri, othe
if isftpuri or isfreenetpriv:
chlist = []
return chlist, cleanupfn, other
-
+
if not other:
other = hg.peer(repo, {}, otheruri)
ui.pushbuffer() # ignore ui events
@@ -327,10 +326,10 @@ def getoutgoing(ui, repo, otheruri, othe
if isftpuri or isfreenetpriv:
chlist = []
return chlist, cleanupfn, other
-
+
if not other:
other = hg.peer(repo, {}, otheruri)
-
+
def outgoingchanges(repo, other):
from mercurial import discovery
fco = discovery.findcommonoutgoing
@@ -343,7 +342,7 @@ def getoutgoing(ui, repo, otheruri, othe
return o
other.ui.pushbuffer() # ignore ui events
-
+
try:
chlist = outgoingchanges(repo, other)
except (AttributeError, util.Abort):
@@ -351,11 +350,10 @@ def getoutgoing(ui, repo, otheruri, othe
other = getlocalother(repo, ui, otheruri, othername)
other.ui.pushbuffer()
chlist = outgoingchanges(repo, other)
-
+
other.ui.popbuffer()
return chlist, cleanupfn, other
-
def getforkinfo(ui, target):
"""Name and Uri of all forks."""
forks = dict(ui.configitems("paths"))
@@ -379,18 +377,18 @@ def getforkdata(ui, repo, target, name,
"""Write the site for a single fork."""
# make sure the forkdir exists.
other = hg.peer(repo, {}, forkuri)
-
+
# incrementally build the html
html = templates["forkhead"].replace(
"{forkname}", forkname).replace(
"{reponame}", name).replace(
"{forkuri}", safeuri(forkuri))
-
+
# prepare the log templater
t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
t.use_template(templates["commitlog"].replace(
"{relativepath}", "../"))
-
+
# Add incoming commits
html += "<div id='incoming'><h2>Incoming commits</h2>"
chlist, cleanupfn, localother = getincoming(ui, repo, otheruri=forkuri, other=other, othername=forkname)
@@ -401,11 +399,11 @@ def getforkdata(ui, repo, target, name,
t.show(ctx)
html += ui.popbuffer()
cleanupfn()
-
+
# add outgoing commits
html += "<div id='outgoing'><h2>Outgoing commits</h2>"
chlist, cleanupfn, localother = getoutgoing(ui, repo, forkuri, other=other, othername=forkname)
-
+
ui.pushbuffer()
for ch in chlist:
ctx = repo.changectx(ch)
@@ -422,7 +420,7 @@ def getforkdir(target, forkname):
def writeforks(ui, repo, target, name):
"""Write an info-page for each fork, defined in hg paths.
-
+
relevant data: incoming commits, outgoing commits, branches and bookmarks not in fork or not in repo. Short: incoming (commits, branches, bookmarks), outgoing (incoming first means, we consider this repo to be the main repo).
"""
forkinfo = getforkinfo(ui, target)
@@ -437,15 +435,14 @@ def writeforks(ui, repo, target, name):
f.write(
getforkdata(ui, repo, target, name, forkname, forkuri))
-
def writecommits(ui, repo, target, name, force=False):
"""Write all not yet existing commit files."""
commit = os.path.join(target, "commit")
-
+
# create the folders
if not os.path.isdir(commit):
os.makedirs(commit)
-
+
t = cmdutil.changeset_templater(ui, repo, patch=False, diffopts=None, mapfile=None, buffered=False)
t.use_template(templates["commitlog"].replace("{relativepath}", "../"))
for c in range(len(repo.changelog)):
@@ -463,14 +460,12 @@ def writecommits(ui, repo, target, name,
cf.write("<pre>"+ui.popbuffer().replace("<", "<")+"</pre>")
cf.write(templates["foot"].replace("{reponame}", "<a href='../'>"+name+"</a>"))
-
def escapename(filename):
"""escape index.html as .index.html and .ind… as ..ind… and so fort."""
if _indexregexp.match(filename) is not None:
return "." + filename
else: return filename
-
def parsesrcdata(data):
"""Parse a src file into a html file."""
return "<pre>"+data.replace("<", "<")+"</pre>"
@@ -497,6 +492,7 @@ def ctxdiffstat(ui, repo, ctx):
"[0;31m", "").replace(
"[0m","")
+
def createindex(ui, repo, target, ctx):
"""Create an index page for the changecontext: the commit message + the user + all files in the changecontext."""
# first the head
@@ -516,7 +512,7 @@ def createindex(ui, repo, target, ctx):
def writesourcetree(ui, repo, target, name, force, rawfiles=False):
"""Write manifests for all commits and websites for all files.
-
+
* For each file, write sites for all revisions where the file was changed: under src/<hex>/path as html site (with linenumbers and maybe colored source), under raw/<hex>/<path> as plain files. If there is an index.html file, write it as .index.html. If there also is .index.html, turn it to ..index.html, …
* For each commit write an index with links to the included files at their latest revisions before/at the commit.
"""
@@ -578,12 +574,12 @@ def parsesite(ui, repo, target, **opts):
return
with open(idfile, "w") as i:
i.write("")
-
+
if opts["sitename"]:
name = opts["sitename"]
elif target != "static": name = target
else: name = os.path.basename(repo.root)
-
+
# first the stylesheets
screenstyle = opts["screenstyle"]
screenfile = os.path.join(target, "style.css")
@@ -599,23 +595,22 @@ def parsesite(ui, repo, target, **opts):
elif not contentequals(printfile, templates["printstyle"]):
with open(printfile, "w") as f:
f.write(templates["printstyle"])
-
+
# then the overview
writeoverview(ui, repo, target, name)
-
+
# and the log
writelog(ui, repo, target, name)
-
+
# and all commit files
writecommits(ui, repo, target, name, force=opts["force"])
-
+
# and all file data
writesourcetree(ui, repo, target, name, force=opts["force"])
-
+
# and all forks
writeforks(ui, repo, target, name)
-
def addrepo(ui, repo, target, bookmarks, force):
"""Add the repo to the target and make sure it is up to date."""
try:
@@ -623,7 +618,7 @@ def addrepo(ui, repo, target, bookmarks,
except mercurial.error.RepoError, e:
# already exists
pass
-
+
ui.pushbuffer()
if bookmarks:
commands.push(ui, repo, dest=target, bookmark=repo._bookmarks, force=force)
@@ -631,7 +626,6 @@ def addrepo(ui, repo, target, bookmarks,
commands.push(ui, repo, dest=target, force=force)
ui.popbuffer()
-
def upload(ui, repo, target, ftpstring, force):
"""upload the repo to the FTP server identified by the ftp string."""
try:
@@ -649,9 +643,9 @@ def upload(ui, repo, target, ftpstring,
except socket.timeout:
ui.warn(_("connection to "), server, _(" timed out after "), timeout, _(" seconds.\n"))
return
-
+
ui.status(ftp.getwelcome(), "\n")
-
+
# create the target dir.
serverdir = os.path.dirname(ftppath)
serverdirparts = ftppath.split("/")
@@ -663,26 +657,26 @@ def upload(ui, repo, target, ftpstring,
sd = os.path.join(sd, sdp)
if not sd in ftp.nlst(sdo):
ftp.mkd(sd)
-
-
+
+
ftp.cwd(ftppath)
if not ftp.pwd() == "/" + ftppath:
ui.warn(_("not in the correct ftp directory. Cowardly bailing out.\n"))
return
-
+
#ftp.dir()
#return
ftpfeatures = ftp.sendcmd("FEAT")
featuremtime = " MDTM" in ftpfeatures.splitlines()
_ftplistcache = set()
-
+
for d, dirnames, filenames in os.walk(target):
for filename in filenames:
localfile = os.path.join(d, filename)
serverfile = localfile[len(target)+1:]
serverdir = os.path.dirname(serverfile)
serverdirparts = serverdir.split("/")
-# print serverdirparts, serverfile
+ # print serverdirparts, serverfile
with open(localfile, "rb") as f:
sd = serverdirparts[0]
if sd and not sd in _ftplistcache: # should happen only once per superdir
@@ -695,7 +689,7 @@ def upload(ui, repo, target, ftpstring,
except ftplib.error_perm, resp:
ui.warn(_("could not create directory "), sd, ": " , resp, "\n")
else: _ftplistcache.add(sd)
-
+
for sdp in serverdirparts[1:]:
sdold = sd
sd = os.path.join(sd, sdp)
@@ -711,7 +705,7 @@ def upload(ui, repo, target, ftpstring,
except ftplib.error_perm, resp:
ui.warn(_("could not create directory "),
sd, ": " , resp, "\n")
-
+
if not serverfile in _ftplistcache: # should happen for existing files only once per dir.
_ftplistcache.update(set(ftp.nlst(serverdir)))
if not serverfile in _ftplistcache or force:
@@ -721,7 +715,7 @@ def upload(ui, repo, target, ftpstring,
else:
ui.status(_("uploading "), serverfile,
_(" because it is not yet online.\n"))
-
+
ftp.storbinary("STOR "+ serverfile, f)
else:
# reupload the file if the file on the server is older than the local file.
@@ -735,8 +729,6 @@ def upload(ui, repo, target, ftpstring,
_(" because it is newer than the file on the FTP server.\n"))
ftp.storbinary("STOR "+ serverfile, f)
-
-
def staticsite(ui, repo, target=None, **opts):
"""Create a static copy of the repository and/or upload it to an FTP server."""
if repo.root == target:
@@ -755,7 +747,6 @@ def staticsite(ui, repo, target=None, **
# upload the repo
upload(ui, repo, target, opts["upload"], opts["force"])
-
cmdtable = {
# "command-name": (function-call, options-list, help-string)
"site": (staticsite,