#!/usr/bin/env node | |
/* | |
Licensed to the Apache Software Foundation (ASF) under one | |
or more contributor license agreements. See the NOTICE file | |
distributed with this work for additional information | |
regarding copyright ownership. The ASF licenses this file | |
to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 | |
Unless required by applicable law or agreed to in writing, | |
software distributed under the License is distributed on an | |
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
KIND, either express or implied. See the License for the | |
specific language governing permissions and limitations | |
under the License. | |
*/ | |
var shell = require("shelljs"), | |
spawn = require("./ares-spawn"), | |
Q = require("q"), | |
path = require("path"), | |
fs = require("fs"), | |
ROOT = path.join(__dirname, "..", ".."); | |
/* | |
* Builds the project with ares-package. | |
* Returns a promise. | |
*/ | |
module.exports.run = function(build_type) { | |
build_type = typeof build_type !== "undefined" ? build_type : ""; | |
var binDir = path.join(ROOT, "bin"); | |
if(!fs.existsSync(binDir)) { | |
shell.mkdir("-p", binDir); | |
} | |
var args = ["-o", path.join(ROOT, "bin")]; | |
if(build_type==="--debug" || build_type==="--no-minify" | |
|| build_type==="--enyo-debug") { | |
args.push("-n"); | |
} | |
args.push(path.join(ROOT, "www")); | |
return spawn("ares-package", args); | |
} | |
/* | |
* Gets the path to the ipk file, if not such file exists then | |
* the script will error out. | |
*/ | |
module.exports.get_ipk = function() { | |
var binDir = path.join(ROOT, "bin"); | |
if (fs.existsSync(binDir)) { | |
var candidates = fs.readdirSync(binDir).filter(function(p) { | |
// Need to find most recent .ipk. | |
return path.extname(p) == ".ipk"; | |
}).map(function(p) { | |
p = path.join(binDir, p); | |
return { p: p, t: fs.statSync(p).mtime }; | |
}).sort(function(a,b) { | |
return a.t > b.t ? -1 : | |
a.t < b.t ? 1 : 0; | |
}); | |
if (candidates.length === 0) { | |
console.error("ERROR : No .ipk found in " + binDir + " directory"); | |
process.exit(2); | |
} | |
console.log("Using ipk: " + candidates[0].p); | |
return candidates[0].p; | |
} else { | |
console.error("ERROR : unable to find project " + binDir + " directory, could not locate .ipk"); | |
process.exit(2); | |
} | |
} | |
module.exports.help = function() { | |
console.log("Usage: " + path.relative(process.cwd(), path.join(ROOT, 'cordova', 'build')) + " [options]"); | |
console.log(" '--debug|--no-minify': Will build the project without minification phase"); | |
process.exit(0); | |
} |