mirror of
https://github.com/apache/cordova-android.git
synced 2025-02-15 20:53:06 +08:00
69 lines
2.4 KiB
JavaScript
69 lines
2.4 KiB
JavaScript
var shell=WScript.CreateObject("WScript.Shell");
|
|
|
|
function exec(s, output) {
|
|
WScript.Echo('Executing ' + s);
|
|
var o=shell.Exec(s);
|
|
while (o.Status == 0) {
|
|
WScript.Sleep(100);
|
|
}
|
|
WScript.Echo("Command exited with code " + o.Status);
|
|
}
|
|
function read(filename) {
|
|
var fso=WScript.CreateObject("Scripting.FileSystemObject");
|
|
var f=fso.OpenTextFile(filename, 1);
|
|
var s=f.ReadAll();
|
|
f.Close();
|
|
return s;
|
|
}
|
|
function write(filename, contents) {
|
|
var fso=WScript.CreateObject("Scripting.FileSystemObject");
|
|
var f=fso.OpenTextFile(filename, 2, true);
|
|
f.Write(contents);
|
|
f.Close();
|
|
}
|
|
function replaceInFile(filename, regexp, replacement) {
|
|
write(filename, read(filename).replace(regexp, replacement));
|
|
}
|
|
|
|
// working dir
|
|
var PWD = WScript.ScriptFullName.split('\\cordova\\create.js').join('');
|
|
|
|
var fso=WScript.CreateObject("Scripting.FileSystemObject");
|
|
var f=fso.OpenTextFile(PWD + '\\.cordova\\config', 1);
|
|
while (!f.AtEndOfStream) {
|
|
var prop = f.ReadLine().split('=');
|
|
var line = 'var ' + prop[0] + '=' + "'" + prop[1] + "';";
|
|
eval(line); // hacky shit to load config but whatevs
|
|
}
|
|
|
|
var PACKAGE_AS_PATH=PACKAGE.replace(/\./g, '\\');
|
|
var ACTIVITY_PATH=PWD+'\\src\\'+PACKAGE_AS_PATH+'\\'+ACTIVITY+'.java';
|
|
var MANIFEST_PATH=PWD+'\\AndroidManifest.xml';
|
|
|
|
exec('android.bat create project --target ' + TARGET + ' --path ' + PWD + ' --package ' + PACKAGE + ' --activity ' + ACTIVITY);
|
|
|
|
// copy in activity and other android assets
|
|
exec('cmd /c xcopy ' + PWD + '\\cordova\\templates\\project\\* ' + PWD +' /Y /S');
|
|
|
|
// copy in cordova.js
|
|
exec('cmd /c copy ' + PWD + '\\.cordova\\android\\cordova-' + VERSION + '.js ' + PWD + '\\assets\\www /Y');
|
|
|
|
// copy in cordova.jar
|
|
exec('cmd /c copy ' + PWD + '\\.cordova\\android\\cordova-' + VERSION + '.jar ' + PWD + '\\libs /Y');
|
|
|
|
// copy in res/xml
|
|
exec('cmd /c md ' + PWD + '\\res\\xml');
|
|
exec('cmd /c copy ' + PWD + '\\.cordova\\android\\cordova.xml ' + PWD + '\\res\\xml /Y');
|
|
exec('cmd /c copy ' + PWD + '\\.cordova\\android\\plugins.xml ' + PWD + '\\res\\xml /Y');
|
|
|
|
// copy in default activity
|
|
exec('cmd /c copy ' + PWD + '\\cordova\\templates\\Activity.java ' + ACTIVITY_PATH + ' /Y');
|
|
|
|
// interpolate the activity name and package
|
|
replaceInFile(ACTIVITY_PATH, /__ACTIVITY__/, ACTIVITY);
|
|
replaceInFile(ACTIVITY_PATH, /__ID__/, PACKAGE);
|
|
|
|
replaceInFile(MANIFEST_PATH, /__ACTIVITY__/, ACTIVITY);
|
|
replaceInFile(MANIFEST_PATH, /__PACKAGE__/, PACKAGE);
|
|
|
|
WScript.Echo('Create completed successfully.'); |