#!/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"); var copy = require('dryice').copy; var ACE_HOME = __dirname; function main(args) { var target; if (args.length == 3) { target = args[2]; // Check if 'target' contains some allowed value. if (target != "normal" && target != "bm" && target != "demo") { target = null; } } if (!target) { 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"); process.exit(0); } var aceProject = { roots: [ ACE_HOME + '/lib', ACE_HOME + '/demo' ], textPluginPattern: /^ace\/requirejs\/text!/ }; if (target == "normal") { ace(aceProject); } else if (target == "demo") { demo(aceProject); } else if (target == "bm") { bookmarklet(aceProject); } } function bookmarklet(aceProject) { var targetDir = "build/textarea"; copy({ source: "build_support/editor_textarea.html", dest: targetDir + '/editor.html' }); copy({ source: "build_support/style.css", dest: targetDir + '/style.css' }); buildAce(aceProject, { targetDir: targetDir + "/src", ns: "__ace_shadowed__", exportModule: "ace/ext/textarea", compress: false, noconflict: true, suffix: ".js", compat: false, name: "ace-bookmarklet", workers: [], keybindings: [] }); } function ace(aceProject) { console.log('# ace ---------'); // uncompressed buildAce(aceProject, { compress: false, noconflict: false, suffix: "-uncompressed.js", compat: true, name: "ace" }); buildAce(aceProject, { compress: false, noconflict: true, suffix: "-uncompressed-noconflict.js", compat: true, name: "ace", workers: [] }); // compressed buildAce(aceProject, { compress: true, noconflict: false, suffix: ".js", compat: true, name: "ace", workers: [] }); buildAce(aceProject, { compress: true, noconflict: true, suffix: "-noconflict.js", compat: true, name: "ace", workers: [] }); console.log('# ace License | Readme | Changelog ---------'); copy({ source: "build_support/editor.html", dest: "build/editor.html" }); copy({ source: ACE_HOME + "/LICENSE", dest: "build/LICENSE" }); copy({ source: ACE_HOME + "/Readme.md", dest: "build/Readme.md" }); copy({ source: ACE_HOME + "/ChangeLog.txt", dest: "build/ChangeLog.txt" }); } function demo(aceProject) { console.log('# kitchen sink ---------'); var version, ref; try { version = JSON.parse(fs.readFileSync(__dirname + "/package.json")).version; ref = fs.readFileSync(__dirname + "/.git-ref").toString(); } catch(e) { ref = ""; version = ""; } copy({ source: "kitchen-sink.html", dest: "build/kitchen-sink.html", filter: [ function(data) { return (data .replace("DEVEL-->", "") .replace("", "") .replace("