#!/usr/bin/env python3 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file # for details. All rights reserved. Use of this source code is governed by a # BSD-style license that can be found in the LICENSE file. # This script builds and then uploads the Dart client sample app to AppEngine, # where it is accessible by visiting http://dart.googleplex.com. import os import subprocess import sys from os.path import abspath, basename, dirname, exists, join, split, relpath import base64, re, os, shutil, subprocess, sys, tempfile, optparse APP_PATH = os.getcwd() CLIENT_TOOLS_PATH = dirname(abspath(__file__)) CLIENT_PATH = dirname(CLIENT_TOOLS_PATH) # Add the client tools directory so we can find htmlconverter.py. sys.path.append(CLIENT_TOOLS_PATH) import htmlconverter def convertOne(infile, options): outDirBase = 'outcode' outfile = join(outDirBase, infile) print('converting %s to %s' % (infile, outfile)) if 'dart' in options.target: htmlconverter.convertForDartium(infile, outDirBase, outfile.replace('.html', '-dart.html'), options.verbose) if 'js' in options.target: htmlconverter.convertForChromium(infile, options.dartc_extra_flags, outfile.replace('.html', '-js.html'), options.verbose) def Flags(): """ Consturcts a parser for extracting flags from the command line. """ result = optparse.OptionParser() result.add_option( "-t", "--target", help="The target html to generate", metavar="[js,dart]", default='js,dart') result.add_option( "--verbose", help="Print verbose output", default=False, action="store_true") result.add_option( "--dartc_extra_flags", help="Additional flag text to pass to dartc", default="", action="store") #result.set_usage("update.py input.html -o OUTDIR -t chromium,dartium") return result def getAllHtmlFiles(): htmlFiles = [] for filename in os.listdir(APP_PATH): fName, fExt = os.path.splitext(filename) if fExt.lower() == '.html': htmlFiles.append(filename) return htmlFiles def main(): os.chdir(CLIENT_PATH) # TODO(jimhug): I don't like chdir's in scripts... parser = Flags() options, args = parser.parse_args() #if len(args) < 1 or not options.out or not options.target: # parser.print_help() # return 1 REL_APP_PATH = relpath(APP_PATH) for file in getAllHtmlFiles(): infile = join(REL_APP_PATH, file) convertOne(infile, options) if __name__ == '__main__': main()