from shutil import copyfile from subprocess import check_output, CalledProcessError import sys import os import platform import subprocess Import("env") def is_tool(name): cmd = "where" if platform.system() == "Windows" else "which" try: check_output([cmd, name]) return True except: return False; def build_web(): if is_tool("npm"): os.chdir("web") print("Attempting to build webpage...") try: if platform.system() == "Windows": print check_output(["npm.cmd", "install", "--only=dev"]) print check_output(["node_modules\\.bin\\gulp.cmd"]) else: print check_output(["npm", "install"]) print check_output(["node_modules/.bin/gulp"]) copyfile("build/index.html.gz.h", "../dist/index.html.gz.h") except OSError as e: print "Encountered error OSError building webpage:", e if e.filename: print "Filename is", e.filename print "WARNING: Failed to build web package. Using pre-built page." except CalledProcessError as e: print e.output print "Encountered error CalledProcessError building webpage:", e print "WARNING: Failed to build web package. Using pre-built page." except Exception as e: print "Encountered error", type(e).__name__, "building webpage:", e print "WARNING: Failed to build web package. Using pre-built page." finally: os.chdir(".."); build_web()