(Arne Babenhauserheide)
2012-08-11: refactoring: use absolute calls for os.path.* refactoring: use absolute calls for os.path.*
diff --git a/staticsite.py b/staticsite.py --- a/staticsite.py +++ b/staticsite.py @@ -18,7 +18,6 @@ GNU General Public License version 2 or """ import os -from os.path import join, isdir, isfile, basename, dirname import shutil import re import mercurial @@ -126,8 +125,8 @@ def writeoverview(ui, repo, target, name readme = name for f in os.listdir(repo.root): if f.lower().startswith("readme"): - readme = parsereadme(join(repo.root, f)) - readme_intro = parsereadme(join(repo.root, f), truncated=True) + readme = parsereadme(os.path.join(repo.root, f)) + readme_intro = parsereadme(os.path.join(repo.root, f), truncated=True) overview += "<div id='intro'>" overview += readme_intro overview += "</div>" @@ -207,21 +206,21 @@ def writeoverview(ui, repo, target, name # finish the overview overview += templates["foot"] - indexfile = join(target, "index.html") + indexfile = os.path.join(target, "index.html") if not contentequals(indexfile, overview): with open(indexfile, "w") as f: f.write(overview) def writelog(ui, repo, target, name): """Write the full changelog, in steps of 100.""" - commits = join(target, "commits") + commits = os.path.join(target, "commits") # create the folders - if not isdir(commits): + if not os.path.isdir(commits): os.makedirs(commits) for i in range(len(repo.changelog)/100): d = commits+"-"+str(i+1)+"00" - if not isdir(d): + if not os.path.isdir(d): os.makedirs(d) # create the log files @@ -240,10 +239,10 @@ def writelog(ui, repo, target, name): logs[-1][-1] += "<p><a href=\"../commits-"+str(ck-2)+"00"+"\">later</a></p>" elif ck>1: logs[-1][-1] += "<p><a href=\"../commits\">later</a></p>" - logs.append([join(d, "index.html"), ""]) + logs.append([os.path.join(d, "index.html"), ""]) else: d = commits - logs.append([join(d, "index.html"), ""]) + 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)): @@ -360,7 +359,7 @@ def getforkdata(ui, repo, target, name, return html def getforkdir(target, forkname): - return join("forks", forkname) + return os.path.join("forks", forkname) def writeforks(ui, repo, target, name): """Write an info-page for each fork, defined in hg paths. @@ -373,27 +372,27 @@ def writeforks(ui, repo, target, name): if os.path.abspath(forkuri) == os.path.abspath(target): continue forkdir = getforkdir(target, forkname) - if not isdir(join(target, forkdir)): - os.makedirs(join(target, forkdir)) - with open(join(target, forkdir, "index.html"), "w") as f: + if not os.path.isdir(os.path.join(target, forkdir)): + os.makedirs(os.path.join(target, forkdir)) + with open(os.path.join(target, forkdir, "index.html"), "w") as f: 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 = join(target, "commit") + commit = os.path.join(target, "commit") # create the folders - if not isdir(commit): + 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)): ctx = repo.changectx(str(c)) - cpath = join(commit, ctx.hex() + ".html") - if not force and isfile(cpath): + cpath = os.path.join(commit, ctx.hex() + ".html") + if not force and os.path.isfile(cpath): continue with open(cpath, "w") as cf: cf.write(templates["head"].replace("{reponame}", "<a href='../'>"+name+"</a>").replace("{title}", name)) @@ -419,11 +418,11 @@ def parsesrcdata(data): def srcpath(target, ctx, filename): """Get the relative path to the static sourcefile for an already escaped filename.""" - return join(target,"src",ctx.hex(),filename+".html") + return os.path.join(target,"src",ctx.hex(),filename+".html") def rawpath(target, ctx, filename): """Get the relative path to the static sourcefile for an already escaped filename.""" - return join(target,"raw",ctx.hex(),filename) + return os.path.join(target,"raw",ctx.hex(),filename) def ctxdiffstat(ui, repo, ctx): """Get the diffstat of a change context.""" @@ -452,7 +451,7 @@ def createindex(ui, repo, target, ctx): for filename in ctx: filectx = ctx[filename] lasteditctx = filectx.filectx(filectx.filerev()) - index += "<li><a href='../../"+ join("src",lasteditctx.hex(), escapename(filename)+".html") + "'>" + filename + "</a>"# (<a href='../../" + join("raw",lasteditctx.hex(), filename) + "'>raw</a>)</li>" + index += "<li><a href='../../"+ os.path.join("src",lasteditctx.hex(), escapename(filename)+".html") + "'>" + filename + "</a>"# (<a href='../../" + os.path.join("raw",lasteditctx.hex(), filename) + "'>raw</a>)</li>" index += "</ul>" return index @@ -474,20 +473,20 @@ def writesourcetree(ui, repo, target, na # first write the raw data filepath = rawpath(target,ctx,filectx.path()) # skip already existing files - if not force and isfile(filepath): + if not force and os.path.isfile(filepath): continue try: - os.makedirs(dirname(filepath)) + os.makedirs(os.path.dirname(filepath)) except OSError: pass # exists with open(filepath, "w") as f: f.write(filectx.data()) # then write it as html _filenameescaped = escapename(filectx.path()) filepath = srcpath(target,ctx,_filenameescaped) - if not force and isfile(filepath): + if not force and os.path.isfile(filepath): continue try: - os.makedirs(dirname(filepath)) + os.makedirs(os.path.dirname(filepath)) except OSError: pass # exists with open(filepath, "w") as f: f.write(templates["srchead"].replace("{filetitle}", name+": " + filename)) @@ -496,12 +495,12 @@ def writesourcetree(ui, repo, target, na # then write manifests for all commits for c in range(len(repo.changelog)): ctx = repo.changectx(str(c)) - filepath = join(target,"src",ctx.hex(),"index.html") + filepath = os.path.join(target,"src",ctx.hex(),"index.html") # skip already existing files - if not force and isfile(filepath): + if not force and os.path.isfile(filepath): continue try: - os.makedirs(dirname(filepath)) + os.makedirs(os.path.dirname(filepath)) except OSError: pass # exists with open(filepath, "w") as f: f.write(templates["head"].replace("{reponame}", "<a href='../../'>"+name+"</a>").replace("{title}", name)) @@ -510,12 +509,12 @@ def writesourcetree(ui, repo, target, na def parsesite(ui, repo, target, **opts): """Create the static folder.""" - idfile = join(target, _staticidentifier) - if not isdir(target): + idfile = os.path.join(target, _staticidentifier) + if not os.path.isdir(target): # make sure the target exists os.makedirs(target) else: # make sure it is a staticrepo - if not isfile(idfile): + if not os.path.isfile(idfile): if not ui.prompt("The target folder " + target + " has not yet been used as static repo. Really use it? (y/N)", default="n").lower() in ["y", "yes"]: return with open(idfile, "w") as i: @@ -524,18 +523,18 @@ def parsesite(ui, repo, target, **opts): if opts["name"]: name = opts["name"] elif target != "static": name = target - else: name = basename(repo.root) + else: name = os.path.basename(repo.root) # first the stylesheets screenstyle = opts["screenstyle"] - screenfile = join(target, "style.css") + screenfile = os.path.join(target, "style.css") if screenstyle and not samefilecontent(screenstyle, screenfile): shutil.copyfile(screenstyle, screenfile) elif not contentequals(screenfile,templates["screenstyle"]): with open(screenfile, "w") as f: f.write(templates["screenstyle"]) printstyle = opts["printstyle"] - printfile = join(target, "print.css") + printfile = os.path.join(target, "print.css") if printstyle and not samefilecontent(printstyle, printfile): shutil.copyfile(printstyle, printfile) elif not contentequals(printfile, templates["printstyle"]): @@ -595,7 +594,7 @@ def upload(ui, repo, target, ftpstring, ui.status(ftp.getwelcome(), "\n") # create the target dir. - serverdir = dirname(ftppath) + serverdir = os.path.dirname(ftppath) serverdirparts = ftppath.split("/") sd = serverdirparts[0] if not sd in ftp.nlst(): @@ -620,9 +619,9 @@ def upload(ui, repo, target, ftpstring, for d, dirnames, filenames in os.walk(target): for filename in filenames: - localfile = join(d, filename) + localfile = os.path.join(d, filename) serverfile = localfile[len(target)+1:] - serverdir = dirname(serverfile) + serverdir = os.path.dirname(serverfile) serverdirparts = serverdir.split("/") # print serverdirparts, serverfile with open(localfile, "rb") as f: @@ -640,7 +639,7 @@ def upload(ui, repo, target, ftpstring, for sdp in serverdirparts[1:]: sdold = sd - sd = join(sd, sdp) + sd = os.path.join(sd, sdp) #print sd, sdp #print ftp.nlst(sdold) if sd and not sd in _ftplistcache: # should happen only once per superdir