- From: SVG Working Group repository <cam+svgwgrepo@mcc.id.au>
- Date: Mon, 31 Mar 2014 17:14:03 -0700
- To: public-svg-wg@w3.org
details: https://svgwg.org/hg/svg2-tools/rev/63ffebec495a branches: changeset: 84:63ffebec495a user: Cameron McCormack <cam@mcc.id.au> date: Tue Apr 01 11:14:13 2014 +1100 description: Check whether node should be called as "node" or "nodejs". diffstat: build.py | 22 ++++++++++++++++++---- 1 files changed, 18 insertions(+), 4 deletions(-) diffs (104 lines): diff --git a/build.py b/build.py --- a/build.py +++ b/build.py @@ -36,16 +36,20 @@ def getstatusoutput(cmd): import subprocess pipe = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, universal_newlines=True) output = "".join(pipe.stdout.readlines()) sts = pipe.wait() if sts is None: sts = 0 return sts, output +def getstatus(cmd): + status, output = getstatusoutput(cmd) + return status + # could allow this to be passed in: repo_dir = os.getcwd() master_dir = join(repo_dir, 'master') build_dir = join(repo_dir, 'build') publish_dir = join(build_dir, 'publish') tools_dir = normpath(join(repo_dir, '..', 'svg2-tools')) @@ -104,29 +108,39 @@ if len(sys.argv) == 2 and sys.argv[1] == for file in files[:]: file = join(parent, file) if file != readme: os.remove(file) for dir in dirs[:]: os.rmdir(join(parent, dir)) sys.exit(0) +# See if we should call "node" or "nodejs": + +status, output = getstatusoutput("which nodejs") +if getstatus("which nodejs") == 0: + node = "nodejs" +elif getstatus("which node") == 0: + node = "node" +else: + exit(1, 'FAIL: could not find "nodejs" or "node" on the PATH') + # Get all the pages and resources from publish.xml: os.chdir(master_dir) -status, output = getstatusoutput("node \"" + +status, output = getstatusoutput(node + " \"" + native_path(join(tools_dir, "publish/publish.js")) + "\" --list-pages") os.chdir(repo_dir) if status != 0: exit(1, 'FAIL: could not get list of specification pages') all = output.split() os.chdir(master_dir) -status, output = getstatusoutput("node \"" + +status, output = getstatusoutput(node + " \"" + native_path(join(tools_dir, "publish/publish.js")) + "\" --list-resources") os.chdir(repo_dir) if status != 0: exit(1, 'FAIL: could not get list of resources') resources = output.split() # Build chapters as required: @@ -154,17 +168,17 @@ for name in all: if srctime > desttime: tobuild.append(pub_path) tobuild_names.append(name) break if tobuild: toremove = tobuild os.chdir(master_dir) - run("node \"" + + run(node + " \"" + native_path(join(tools_dir, join("publish","publish.js"))) + "\" --build " + " ".join(tobuild_names) + (" --local-style" if os.environ.get("SVG_BUILD_LOCAL_STYLE_SHEETS") else "")) toremove = [] os.chdir(repo_dir) # chdir back # Build single page spec as required: @@ -179,17 +193,17 @@ if len(all) > 1: singlePageTime = getmtime(single_page) for name in all: if getmtime(join(publish_dir, name + ".html")) > singlePageTime: buildSinglePage = True break if buildSinglePage: os.chdir(master_dir) - run("node \"" + + run(node + " \"" + native_path(join(tools_dir, join("publish","publish.js"))) + "\" --build-single-page") os.chdir(repo_dir) # chdir back # Copy over anything else that needs to be copied to 'publish': for f in resources: tocopypath = join(master_dir, f) if os.path.exists(tocopypath):
Received on Tuesday, 1 April 2014 00:14:34 UTC