#!/usr/bin/env node /* ***** BEGIN LICENSE BLOCK ***** * Version: MPL 1.1/GPL 2.0/LGPL 2.1 * * The contents of this file are subject to the Mozilla Public License Version * 1.1 (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * http://www.mozilla.org/MPL/ * * Software distributed under the License is distributed on an "AS IS" basis, * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License * for the specific language governing rights and limitations under the * License. * * The Original Code is Ajax.org Code Editor (ACE). * * The Initial Developer of the Original Code is * Ajax.org B.V. * Portions created by the Initial Developer are Copyright (C) 2010 * the Initial Developer. All Rights Reserved. * * Contributor(s): * Fabian Jakobs * Julian Viereck * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), * in which case the provisions of the GPL or the LGPL are applicable instead * of those above. If you wish to allow use of your version of this file only * under the terms of either the GPL or the LGPL, and not to allow others to * use your version of this file under the terms of the MPL, indicate your * decision by deleting the provisions above and replace them with the notice * and other provisions required by the GPL or the LGPL. If you do not delete * the provisions above, a recipient may use your version of this file under * the terms of any one of the MPL, the GPL or the LGPL. * * ***** END LICENSE BLOCK ***** */ var fs = require("fs"); if (!fs.existsSync) fs.existsSync = require("path").existsSync; var copy = require('dryice').copy; var ACE_HOME = __dirname; var BUILD_DIR = ACE_HOME + "/build"; function main(args) { var type = "minimal"; args = args.map(function(x) { if (x[0] == "-" && x[1] != "-") return "-" + x; return x; }); if (args[2] && (args[2][0] != "-" || args[2].indexOf("h") != -1)) type = args[2]; var i = args.indexOf("--target"); if (i != -1 && args[i+1]) BUILD_DIR = args[i+1]; if (type == "minimal") { buildAce({ compress: args.indexOf("--m") != -1, noconflict: args.indexOf("--nc") != -1 }); } else if (type == "normal") { ace(); } else if (type == "demo") { demo(); } else if (type == "bm") { bookmarklet(); } else if (type == "full") { ace(); demo(); bookmarklet(); } console.log("--- Ace Dryice Build Tool ---"); console.log(""); console.log("Options:"); console.log(" normal Runs embedded build of Ace"); console.log(" demo Runs demo build of Ace"); console.log(" bm Runs bookmarklet build of Ace"); console.log(" full all of above"); console.log("flags:"); console.log(" -m minify"); console.log(" -nc namespace require"); console.log(" --target ./path path to build folder"); console.log(""); if (BUILD_DIR) console.log(" output generated in " + type + __dirname + "/" + BUILD_DIR) process.exit(0); } function bookmarklet() { var targetDir = BUILD_DIR + "/textarea"; copy({ source: "build_support/editor_textarea.html", dest: targetDir + '/editor.html' }); copy({ source: "build_support/style.css", dest: targetDir + '/style.css' }); buildAce({ targetDir: targetDir + "/src", ns: "__ace_shadowed__", exportModule: "ace/ext/textarea", compress: false, noconflict: true, suffix: "", name: "ace-bookmarklet", workers: [], keybindings: [] }); } function ace() { console.log('# ace ---------'); // uncompressed buildAce({ compress: false, noconflict: false }); buildAce({ compress: false, noconflict: true }); // compressed buildAce({ compress: true, noconflict: false }); buildAce({ compress: true, noconflict: true }); console.log('# ace License | Readme | Changelog ---------'); copy({ source: ACE_HOME + "/build_support/editor.html", dest: BUILD_DIR + "/editor.html" }); copy({ source: ACE_HOME + "/LICENSE", dest: BUILD_DIR + "/LICENSE" }); copy({ source: ACE_HOME + "/ChangeLog.txt", dest: BUILD_DIR + "/ChangeLog.txt" }); } function demo() { console.log('# kitchen sink ---------'); var version, ref; try { version = JSON.parse(fs.readFileSync(ACE_HOME + "/package.json")).version; ref = fs.readFileSync(ACE_HOME + "/.git-ref").toString(); } catch(e) { ref = ""; version = ""; } function changeComments(data) { return (data .replace(//g, "") .replace(/PACKAGE\-\->|