diff --git a/bin/create.bat b/bin/create.bat new file mode 100644 index 00000000..b9c9392b --- /dev/null +++ b/bin/create.bat @@ -0,0 +1 @@ +cscript create.js \ No newline at end of file diff --git a/bin/create.js b/bin/create.js new file mode 100644 index 00000000..23065665 --- /dev/null +++ b/bin/create.js @@ -0,0 +1,88 @@ +/* + * create a phonegap/android project + * + * USAGE + * ./create [path package activity] + */ + +function read(filename) { + var fso=WScript.CreateObject("Scripting.FileSystemObject"); + var f=fso.OpenTextFile(filename, 1, true); + 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)); +} +function exec(s) { + var o=shell.Exec(s); +} + +var args = WScript.Arguments, PROJECT_PATH="example", + PACKAGE="com.phonegap.example", ACTIVITY="PhoneGapExample", + shell=WScript.CreateObject("WScript.Shell"); + +if (args.Count() == 3) { + WScript.Echo('Found expected arguments'); + PROJECT_PATH=args(0); + PACKAGE=args(1); + ACTIVITY=args(2); +} + +var PACKAGE_AS_PATH=PACKAGE.replace(/\./g, '\\'); +var ACTIVITY_PATH=PROJECT_PATH+'\\src\\'+PACKAGE_AS_PATH+'\\'+ACTIVITY+'.java'; +var MANIFEST_PATH=PROJECT_PATH+'\\AndroidManifest.xml'; +var TARGET=shell.Exec('android.bat list targets').StdOut.ReadAll().match(/id:\s([0-9]).*/)[1]; +var VERSION=read('VERSION').replace(/\r\n/,'').replace(/\n/,''); + +// clobber any existing example + +/* +if [ $# -eq 0 ] +then + rm -rf $PROJECT_PATH +fi +*/ + +// create the project +exec('android.bat create project --target '+TARGET+' --path '+PROJECT_PATH+' --package '+PACKAGE+' --activity '+ACTIVITY); + +// update the phonegap framework project to a target that exists on this machine +exec('android.bat update project --target '+TARGET+' --path framework'); + +// compile phonegap.js and phonegap.jar +// if you see an error about "Unable to resolve target" then you may need to +// update your android tools or install an additional Android platform version +exec('ant.bat -v -f framework\\build.xml jar'); + +// copy in the project template +exec('cmd /c xcopy bin\\templates\\project '+PROJECT_PATH+' /S /Y'); + +// copy in phonegap.js +exec('cmd /c copy framework\\assets\\www\\phonegap-'+VERSION+'.js '+PROJECT_PATH+'\\assets\\www\\phonegap-'+VERSION+'.js /Y'); + +// copy in phonegap.jar +exec('cmd /c copy framework\\phonegap-'+VERSION+'.jar '+PROJECT_PATH+'\\libs\\phonegap-'+VERSION+'.jar /Y'); + +// copy in default activity +exec('cmd /c copy bin\\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); + +/* +# leave the id for launching +touch $PROJECT_PATH/package-activity +echo $PACKAGE/$PACKAGE.$ACTIVITY > $PROJECT_PATH/package-activity +*/ \ No newline at end of file diff --git a/bin/create.xml b/bin/create.xml new file mode 100644 index 00000000..a578993d --- /dev/null +++ b/bin/create.xml @@ -0,0 +1,81 @@ + + + + + + + + + + package-as-path=${package} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file