mirror of
https://github.com/apache/cordova-android.git
synced 2025-01-19 23:42:53 +08:00
94943a9a84
github: close #113
66 lines
2.2 KiB
JavaScript
Executable File
66 lines
2.2 KiB
JavaScript
Executable File
#!/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'),
|
|
child_process = require('child_process'),
|
|
Q = require('q');
|
|
|
|
get_highest_sdk = function(results){
|
|
var reg = /\d+/;
|
|
var apiLevels = [];
|
|
for(var i=0;i<results.length;i++){
|
|
apiLevels[i] = parseInt(results[i].match(reg)[0]);
|
|
}
|
|
apiLevels.sort(function(a,b){return b-a});
|
|
console.log(apiLevels[0]);
|
|
}
|
|
|
|
get_sdks = function() {
|
|
var d = Q.defer();
|
|
child_process.exec('android list targets', function(err, stdout, stderr) {
|
|
if (err) d.reject(stderr);
|
|
else d.resolve(stdout);
|
|
});
|
|
|
|
return d.promise.then(function(output) {
|
|
var reg = /android-\d+/gi;
|
|
var results = output.match(reg);
|
|
if(results.length===0){
|
|
return Q.reject(new Error('No android sdks installed.'));
|
|
}else{
|
|
get_highest_sdk(results);
|
|
}
|
|
|
|
return Q();
|
|
}, function(stderr) {
|
|
if (stderr.match(/command\snot\sfound/) || stderr.match(/'android' is not recognized/)) {
|
|
return Q.reject(new Error('The command \"android\" failed. Make sure you have the latest Android SDK installed, and the \"android\" command (inside the tools/ folder) is added to your path.'));
|
|
} else {
|
|
return Q.reject(new Error('An error occurred while listing Android targets'));
|
|
}
|
|
});
|
|
}
|
|
|
|
module.exports.run = function() {
|
|
return Q.all([get_sdks()]);
|
|
}
|
|
|