From b9f942954224a90a8955396673d5db91613eef18 Mon Sep 17 00:00:00 2001 From: Anis Kadri Date: Thu, 21 Jun 2012 21:15:53 -0700 Subject: [PATCH] windows build/debug/launch scripts --- bin/create.js | 32 +++++----- .../ApplicationInfo/ApplicationInfo.class | Bin 1941 -> 2045 bytes .../ApplicationInfo/ApplicationInfo.java | 2 +- .../cordova/ApplicationInfo/manifest.txt | 1 - bin/templates/cordova/BOOM.bat | 1 + bin/templates/cordova/appinfo.jar | Bin 1527 -> 1587 bytes bin/templates/cordova/clean.bat | 1 + bin/templates/cordova/cordova.bat | 15 +++++ bin/templates/cordova/cordova.js | 56 +++++++++++------- bin/templates/cordova/debug.bat | 1 + bin/templates/cordova/emulate.bat | 1 + 11 files changed, 70 insertions(+), 40 deletions(-) delete mode 100644 bin/templates/cordova/ApplicationInfo/manifest.txt diff --git a/bin/create.js b/bin/create.js index fcce4786..35d4fd79 100644 --- a/bin/create.js +++ b/bin/create.js @@ -142,32 +142,32 @@ downloadCommonsCodec(); exec('ant.bat -f '+ ROOT +'\\framework\\build.xml jar'); // copy in the project template -exec('cmd /c xcopy '+ ROOT + '\\bin\\templates\\project\\res '+PROJECT_PATH+'\\res\\ /E /Y'); -exec('cmd /c xcopy '+ ROOT + '\\bin\\templates\\project\\assets '+PROJECT_PATH+'\\assets\\ /E /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\project\\AndroidManifest.xml ' + PROJECT_PATH + '\\AndroidManifest.xml /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\project\\Activity.java '+ ACTIVITY_PATH +' /Y'); +exec('%comspec% /c xcopy '+ ROOT + '\\bin\\templates\\project\\res '+PROJECT_PATH+'\\res\\ /E /Y'); +exec('%comspec% /c xcopy '+ ROOT + '\\bin\\templates\\project\\assets '+PROJECT_PATH+'\\assets\\ /E /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\project\\AndroidManifest.xml ' + PROJECT_PATH + '\\AndroidManifest.xml /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\project\\Activity.java '+ ACTIVITY_PATH +' /Y'); // copy in cordova.js -exec('cmd /c copy '+ROOT+'\\framework\\assets\\www\\cordova-'+VERSION+'.js '+PROJECT_PATH+'\\assets\\www\\cordova-'+VERSION+'.js /Y'); +exec('%comspec% /c copy '+ROOT+'\\framework\\assets\\www\\cordova-'+VERSION+'.js '+PROJECT_PATH+'\\assets\\www\\cordova-'+VERSION+'.js /Y'); // copy in cordova.jar -exec('cmd /c copy '+ROOT+'\\framework\\cordova-'+VERSION+'.jar '+PROJECT_PATH+'\\libs\\cordova-'+VERSION+'.jar /Y'); +exec('%comspec% /c copy '+ROOT+'\\framework\\cordova-'+VERSION+'.jar '+PROJECT_PATH+'\\libs\\cordova-'+VERSION+'.jar /Y'); // copy in xml fso.CreateFolder(PROJECT_PATH + '\\res\\xml'); -exec('cmd /c copy '+ROOT+'\\framework\\res\\xml\\cordova.xml ' + PROJECT_PATH + '\\res\\xml\\cordova.xml /Y'); -exec('cmd /c copy '+ROOT+'\\framework\\res\\xml\\plugins.xml ' + PROJECT_PATH + '\\res\\xml\\plugins.xml /Y'); +exec('%comspec% /c copy '+ROOT+'\\framework\\res\\xml\\cordova.xml ' + PROJECT_PATH + '\\res\\xml\\cordova.xml /Y'); +exec('%comspec% /c copy '+ROOT+'\\framework\\res\\xml\\plugins.xml ' + PROJECT_PATH + '\\res\\xml\\plugins.xml /Y'); // copy cordova scripts fso.CreateFolder(PROJECT_PATH + '\\cordova'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\cordova\\appinfo.jar ' + PROJECT_PATH + '\\cordova\\appinfo.jar /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\cordova\\cordova.js ' + PROJECT_PATH + '\\cordova\\cordova.js /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\cordova\\cordova.bat ' + PROJECT_PATH + '\\cordova\\cordova.bat /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\cordova\\clean.bat ' + PROJECT_PATH + '\\cordova\\clean.bat /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\cordova\\debug.bat ' + PROJECT_PATH + '\\cordova\\debug.bat /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\cordova\\log.bat ' + PROJECT_PATH + '\\cordova\\log.bat /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\cordova\\emulate.bat ' + PROJECT_PATH + '\\cordova\\emulate.bat /Y'); -exec('cmd /c copy '+ROOT+'\\bin\\templates\\cordova\\BOOM.bat ' + PROJECT_PATH + '\\cordova\\BOOM.bat /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\cordova\\appinfo.jar ' + PROJECT_PATH + '\\cordova\\appinfo.jar /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\cordova\\cordova.js ' + PROJECT_PATH + '\\cordova\\cordova.js /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\cordova\\cordova.bat ' + PROJECT_PATH + '\\cordova\\cordova.bat /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\cordova\\clean.bat ' + PROJECT_PATH + '\\cordova\\clean.bat /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\cordova\\debug.bat ' + PROJECT_PATH + '\\cordova\\debug.bat /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\cordova\\log.bat ' + PROJECT_PATH + '\\cordova\\log.bat /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\cordova\\emulate.bat ' + PROJECT_PATH + '\\cordova\\emulate.bat /Y'); +exec('%comspec% /c copy '+ROOT+'\\bin\\templates\\cordova\\BOOM.bat ' + PROJECT_PATH + '\\cordova\\BOOM.bat /Y'); // interpolate the activity name and package replaceInFile(ACTIVITY_PATH, /__ACTIVITY__/, ACTIVITY); diff --git a/bin/templates/cordova/ApplicationInfo/ApplicationInfo.class b/bin/templates/cordova/ApplicationInfo/ApplicationInfo.class index 6b854f7d209a1bea4014ab9b59749ed15d2cd7dc..5ad90f5ce8c8ac798634fe1588fd2919528fd5aa 100644 GIT binary patch delta 829 zcmZ{hTTc^F6otRj(w^yb3|IuLfQV48(kkEu?-dj;Tok+^sEqAUicp{}cn^O;Gx62L zCwxVdN;I07_~eiA7kJx)4?a1QS?laQ`|Q2WSue|fmal#L_2Dzn%`=m7dQA>;$b-Ws zN9YT4lw$_R!-P3uaMFuUg*i=9bH<=Q!~kav&S?e>&Kq1XxyU6ChD?ST(Tti@aanW4 zq{ibhlc>kzCbje$bzC*2$2BjyZg9innZ9D{2z)cp{lg=NGf-VLO+daSFxw!-aW^Cp@)iqy60*--z$H&O1x~6 z+dpgP$DQRBCzo=L{V(r+2~=95duB1eV2j8;_qD&$tqgp<*d#W3j~|6xm0*iR^}=!t z0v+#B8?sQe3I?~5Axuw|tff>1G32+BrqDp9>og~vPBF+AS2A+yVv5^t)uI3vz`@uE2Iqt$&IY+9S5LHcp4^sjFv+-4to0Lxj{)_FIa5noi9=l%{J?6PGVhMu`0!_^Vu+`Q(N6j?b?!JN(^4 z>(qXvcH%vCk@`(`muQIW5hx{T9O~R;uXht7NwAuLU`((D&!c7;-A3n@fDk_G2Q@NZ K26b<3>G=bJtdKeY delta 623 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 H00000Ga4{x diff --git a/bin/templates/cordova/clean.bat b/bin/templates/cordova/clean.bat index e69de29b..8194b33a 100644 --- a/bin/templates/cordova/clean.bat +++ b/bin/templates/cordova/clean.bat @@ -0,0 +1 @@ +%~dp0\cordova.bat clean diff --git a/bin/templates/cordova/cordova.bat b/bin/templates/cordova/cordova.bat index e69de29b..61641316 100644 --- a/bin/templates/cordova/cordova.bat +++ b/bin/templates/cordova/cordova.bat @@ -0,0 +1,15 @@ +@ECHO OFF +IF NOT DEFINED JAVA_HOME GOTO MISSING +FOR %%X in (java.exe ant.bat android.bat) do ( + SET FOUND=%%~$PATH:X + IF NOT DEFINED FOUND GOTO MISSING +) +cscript %~dp0\cordova.js %* +GOTO END +:MISSING +ECHO Missing one of the following: +ECHO JDK: http://java.oracle.com +ECHO Android SDK: http://developer.android.com +ECHO Apache ant: http://ant.apache.org +EXIT /B 1 +:END diff --git a/bin/templates/cordova/cordova.js b/bin/templates/cordova/cordova.js index 64357072..6353b55d 100644 --- a/bin/templates/cordova/cordova.js +++ b/bin/templates/cordova/cordova.js @@ -1,35 +1,42 @@ -var ROOT = WScript.ScriptFullName.split('\\bin\\templates\\cordova\\cordova.js').join(''), +var ROOT = WScript.ScriptFullName.split('\\cordova\\cordova.js').join(''), shell=WScript.CreateObject("WScript.Shell"); function exec(command) { var oExec=shell.Exec(command); - var output = ''; - while (!oExec.StdOut.AtEndOfStream) { - output += oExec.StdOut.ReadLine(); + var output = new String(); + while(oExec.Status == 0) { + if(!oExec.StdOut.AtEndOfStream) { + var line = oExec.StdOut.ReadLine(); + // XXX: Change to verbose mode + //WScript.StdOut.WriteLine(line); + output += line; + } + WScript.sleep(100); } + return output; } -function devices_running() { - var local_devices = exec("adb devices"); - if(local_devices.match(/device |emulator /)) { +function emulator_running() { + var local_devices = shell.Exec("%comspec% /c adb devices").StdOut.ReadAll(); + if(local_devices.match(/emulator/)) { return true; } return false; } function emulate() { // don't run emulator if a device is plugged in or if emulator is already running - if(devices_running()) { + if(emulator_running()) { WScript.Echo("Device or Emulator already running!"); return; } - var oExec = shell.Exec("android.bat list avd"); + var oExec = shell.Exec("%comspec% /c android.bat list avd"); var avd_list = []; var avd_id = -10; while(!oExec.StdOut.AtEndOfStream) { var output = oExec.StdOut.ReadLine(); if(output.match(/Name: (.)*/)) { - avd_list.push(output.replace(/\sName:\s/, "")); + avd_list.push(output.replace(/ *Name:\s/, "")); } } // user has no AVDs @@ -41,7 +48,7 @@ function emulate() { // user has only one AVD so we launch that one if(avd_list.length == 1) { - exec("emulator.bat -cpu-delay 0 -no-boot-anim -cache /tmp/cache -avd "+avd_list[0]+" > NUL"); + shell.Run("emulator -cpu-delay 0 -no-boot-anim -cache %Temp%\cache -avd "+avd_list[0]); } // user has more than one avd so we ask them to choose @@ -55,34 +62,35 @@ function emulate() { avd_id = new Number(WScript.StdIn.ReadLine()); } - WScript.Echo("emulator.bat -cpu-delay 0 -no-boot-anim -cache /tmp/cache -avd "+avd_list[avd_id]+" > NUL"); + shell.Run("emulator -cpu-delay 0 -no-boot-anim -cache %Temp%\\cache -avd "+avd_list[avd_id], 0, false); } } function clean() { - WScript.Echo(exec("ant.bat clean")); + exec("%comspec% /c ant.bat clean -f "+ROOT+"\\build.xml 2>&1"); } function debug() { - WScript.Echo(exec("ant.bat debug")); + exec("%comspec% /c ant.bat debug -f "+ROOT+"\\build.xml 2>&1"); } function debug_install() { - WScript.Echo(exec("ant.bat debug install")); + exec("%comspec% /c ant.bat debug install -f "+ROOT+"\\build.xml 2>&1"); } function log() { - WScript.Echo(exec("adb.bat logcat")); + WScript.Echo(exec("%comspec% /c adb.bat logcat")); } function launch() { - var launch_str=exec("java -jar "+ROOT+"\\cordova\\appinfo.jar "+ROOT+"\\AndroidManifest.xml") - exec("adb.bat shell am start -n "+launch_str); + var launch_str=exec("%comspec% /c java -jar "+ROOT+"\\cordova\\appinfo.jar "+ROOT+"\\AndroidManifest.xml"); + //WScript.Echo(launch_str); + exec("%comspec% /c adb shell am start -n "+launch_str+" 2>&1"); } function BOOM() { - clean(); - if(devices_running()) { + clean(); + if(emulator_running()) { debug_install(); launch(); } else { @@ -92,5 +100,9 @@ function BOOM() { WScript.Echo("##################################################################"); } } - -emulate(); +var args = WScript.Arguments; +if(args.count() != 1) { + WScript.StdErr.Write("An error has occured!\n"); + WScript.Quit(1); +} +eval(args(0)+"()"); diff --git a/bin/templates/cordova/debug.bat b/bin/templates/cordova/debug.bat index e69de29b..ff5edc2c 100644 --- a/bin/templates/cordova/debug.bat +++ b/bin/templates/cordova/debug.bat @@ -0,0 +1 @@ +%~dp0\cordova.bat debug diff --git a/bin/templates/cordova/emulate.bat b/bin/templates/cordova/emulate.bat index e69de29b..87ef969f 100644 --- a/bin/templates/cordova/emulate.bat +++ b/bin/templates/cordova/emulate.bat @@ -0,0 +1 @@ +%~dp0\cordova.bat emulate