You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by be...@apache.org on 2013/05/23 21:42:51 UTC
wp7 commit: distribution tooling update
Updated Branches:
refs/heads/master 27a573cd1 -> 159a6ccb6
distribution tooling update
Project: http://git-wip-us.apache.org/repos/asf/cordova-wp7/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-wp7/commit/159a6ccb
Tree: http://git-wip-us.apache.org/repos/asf/cordova-wp7/tree/159a6ccb
Diff: http://git-wip-us.apache.org/repos/asf/cordova-wp7/diff/159a6ccb
Branch: refs/heads/master
Commit: 159a6ccb6a9ca24341cc9224fb63b2ba72684f26
Parents: 27a573c
Author: Benn Mapes <be...@gmail.com>
Authored: Thu May 23 11:57:16 2013 -0700
Committer: Benn Mapes <be...@gmail.com>
Committed: Thu May 23 12:41:58 2013 -0700
----------------------------------------------------------------------
bin/update.bat | 9 +
bin/update.js | 353 +++++++++++++++++++++
templates/vs/MyTemplateStandAlone.vstemplate | 32 ++-
tooling/scripts/buildjs.js | 31 ++-
tooling/scripts/dist.js | 37 ++-
tooling/scripts/package.js | 50 +++-
tooling/scripts/reversion.js | 13 +-
tooling/scripts/win-zip.js | 32 --
8 files changed, 484 insertions(+), 73 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-wp7/blob/159a6ccb/bin/update.bat
----------------------------------------------------------------------
diff --git a/bin/update.bat b/bin/update.bat
new file mode 100644
index 0000000..9da7e3c
--- /dev/null
+++ b/bin/update.bat
@@ -0,0 +1,9 @@
+@ECHO OFF
+SET full_path=%~dp0
+IF EXIST %full_path%update.js (
+ cscript "%full_path%update.js" %* //nologo
+) ELSE (
+ ECHO.
+ ECHO ERROR: Could not find 'update.js' in 'bin' folder, aborting...>&2
+ EXIT /B 1
+)
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-wp7/blob/159a6ccb/bin/update.js
----------------------------------------------------------------------
diff --git a/bin/update.js b/bin/update.js
new file mode 100644
index 0000000..8ea38a8
--- /dev/null
+++ b/bin/update.js
@@ -0,0 +1,353 @@
+/*
+ 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 fso = WScript.CreateObject("Scripting.FileSystemObject");
+var wscript_shell = WScript.CreateObject("WScript.Shell");
+var shell = WScript.CreateObject("shell.application");
+var args = WScript.Arguments;
+// working dir
+var ROOT = WScript.ScriptFullName.split('\\bin\\update.js').join('');
+//Get version number
+var VERSION = read(ROOT+'\\VERSION').replace(/\r\n/,'').replace(/\n/,'');
+var plugins_folder = "\\Plugins";
+var template_folder = "\\templates\\standalone";
+// anything thats missing to the project
+var overwrite = false;
+var replace = false;
+
+// usage function
+function Usage() {
+ Log("WARNING : Make sure to back up your project before updating!")
+ Log("Usage: update Path-To-Project ");//[ -f | -r ] ");
+ Log(" Path-To-Old-Project : The path the project you would like to update.");
+ //Log(" -f : Will forcefully overwrite and add all core components of the application.");
+ //Log(" -r : Will create an updated project, only keeping the www assets. *NOTE: no native code will be preserved*");
+ Log("examples:");
+ Log(" update C:\\Users\\anonymous\\Desktop\\MyProject");
+}
+
+// logs messaged to stdout and stderr
+function Log(msg, error) {
+ if (error) {
+ WScript.StdErr.WriteLine(msg);
+ }
+ else {
+ WScript.StdOut.WriteLine(msg);
+ }
+}
+
+// executes a commmand in the shell
+function exec(command) {
+ //Log("Command : " + command);
+ var oShell=wscript_shell.Exec(command);
+ while (oShell.Status === 0) {
+ WScript.sleep(100);
+ }
+}
+
+// executes a commmand in the shell
+function exec_verbose(command) {
+ Log("Command: " + command);
+ var oShell=wscript_shell.Exec(command);
+ while (oShell.Status == 0) {
+ //Wait a little bit so we're not super looping
+ WScript.sleep(100);
+ //Print any stdout output from the script
+ if (!oShell.StdOut.AtEndOfStream) {
+ var line = oShell.StdOut.ReadAll();
+ Log(line);
+ }
+ }
+ //Check to make sure our scripts did not encounter an error
+ if (!oShell.StdErr.AtEndOfStream) {
+ var line = oShell.StdErr.ReadAll();
+ Log(line, true);
+ WScript.Quit(2);
+ }
+}
+
+var ForReading = 1, ForWriting = 2, ForAppending = 8;
+var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;
+
+// returns the contents of a file
+function read(filename) {
+ if (fso.FileExists(filename)) {
+ var f=fso.OpenTextFile(filename, 1, 2);
+ var s=f.ReadAll();
+ f.Close();
+ return s;
+ }
+ else {
+ Log('Cannot read non-existant file : ' + filename, true);
+ WScript.Quit(2);
+ }
+ return null;
+}
+
+// writes the contents to the specified file
+function write(filename, contents) {
+ var f=fso.OpenTextFile(filename, ForWriting, TristateTrue);
+ f.Write(contents);
+ f.Close();
+}
+
+// replaces the matches of regexp with replacement
+function replaceInFile(filename, regexp, replacement) {
+ var text = read(filename).replace(regexp,replacement);
+ write(filename,text);
+}
+
+// returns true if the given path is the root of a cordova windows phone project
+// currently returns true if the folder contains a .csproj file.
+function is_windows_phone_project(path) {
+ if (fso.FolderExists(path)) {
+ var proj_folder = fso.GetFolder(path);
+ var proj_files = new Enumerator(proj_folder.Files);
+ for (;!proj_files.atEnd(); proj_files.moveNext()) {
+ if (fso.GetExtensionName(proj_files.item()) == 'csproj') {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+
+// returns the name of the application
+function get_app_name(path) {
+ var WMAppManifest = read(path + '\\Properties\\WMAppManifest.xml').split('\n');
+ for (line in WMAppManifest) {
+ if (WMAppManifest[line].match(/Title\=\"/)) {
+ return WMAppManifest[line].split('Title="')[1].split('"')[0];
+ }
+ }
+ Log("Error : unable to find applicaiton name in the project.", true);
+ Log(" Path : " + path, true);
+ WScript.Quit(2);
+}
+
+// returns the name of the application package
+function get_package_name(path) {
+ var WMAppManifest = read(path + '\\Properties\\WMAppManifest.xml').split('\n');
+ for (line in WMAppManifest) {
+ if (WMAppManifest[line].match(/Title\=\"/)) {
+ return WMAppManifest[line].split('Title="')[1].split('"')[0];
+ }
+ }
+ Log("Error : unable to find applicaiton name in the project.", true);
+ Log(" Path : " + path, true);
+ WScript.Quit(2);
+}
+
+// returns the GUID ame of the application
+function get_app_GUID(path) {
+ var AppXAML = read(path + '\\App.xaml').split('\n');
+ for (line in AppXAML) {
+ if (AppXAML[line].match(/x\:Class\=\"/)) {
+ return AppXAML[line].split('Class="')[1].split('"')[0];
+ }
+ }
+ Log("Error : unable to find package name in the project.", true);
+ Log(" Path : " + path, true);
+ WScript.Quit(2);
+}
+
+// updates the cordova.js and all references in the given project with this repositories version
+function update_cordova_js(path) {
+ // remove old cordova.js
+ var www_contents = shell.NameSpace(path + '\\www').Items();
+ for(i = 0; i < www_contents.Count; i++)
+ {
+ if(www_contents.Item(i).Name.match(/cordova\-(\d+)[.](\d+)[.](\d+)(rc\d)?[.]js/))
+ {
+ fso.DeleteFile(path + '\\www\\' + www_contents.Item(i).Name);
+ }
+ }
+ // update version file
+ copy_to(ROOT + "\\VERSION", path + "\\VERSION");
+ // copy over new cordova.js
+ copy_to(ROOT + template_folder + "\\www\\cordova.js", path + "\\www\\cordova.js");
+
+ // update corodva references
+ var cordova_regex = /cordova-(\d+)[.](\d+)[.](\d+)(rc\d)?/g; //Matches *first* cordova-x.x.x[rcx] (just ad g at end to make global)
+ // update references in index.html
+ replaceInFile(path + '\\www\\index.html', cordova_regex, "cordova");
+ version_regex = /return\s*\"(\d+)[.](\d+)[.](\d+)(rc\d)?/; //Matches return "x.x.x[rcx]
+ // update references in Device.cs
+ replaceInFile(path + '\\Plugins\\Device.cs', version_regex, "return \"" + VERSION);
+}
+
+// Copies assets that need to be saved from source to desination.
+// TODO : Add all critical assets here
+function save_restore(source, destination) {
+ fso.CreateFolder(destination + '\\www');
+ copy_to(source + '\\www', destination + '\\www');
+ copy_to(source + '\\SplashScreenImage.jpg', destination + '\\SplashScreenImage.jpg');
+ copy_to(source + '\\Background.png', destination + '\\Background.png');
+ copy_to(source + '\\ApplicationIcon.png', destination + '\\ApplicationIcon.png');
+ copy_to(source + '\\config.xml', destination + '\\config.xml');
+}
+
+// deletes the path element if it exists
+function delete_if_exists(path) {
+ if (fso.FolderExists(path)) {
+ fso.DeleteFolder(path);
+ }
+ else if (fso.FileExists(path)) {
+ fso.DeleteFile(path);
+ }
+}
+
+// copies a folder or file from source to destination
+function copy_to(source, destination) {
+ // check that source exists
+ if (!fso.FolderExists(source)) {
+ if (!fso.FileExists(source)) {
+ Log("Error : Could not copy file/folder because it doesn't exist.", true);
+ Log(" File/Folder : " + source, true);
+ WScript.Quit(2);
+ }
+ }
+ // if source is a folder, then copy all folder contents
+ if (fso.FolderExists(source)) {
+ fso.CopyFolder(source, destination, true);
+ }
+ // if it's a file, just copy it.
+ else {
+ exec('%comspec% /c copy /Y /V ' + source + ' ' + destination);
+ }
+}
+
+// updates the cordova.js in project along with the cordova tooling.
+function update_project(path) {
+ // update cordova folder
+ delete_if_exists(path + '\\cordova');
+ fso.CreateFolder(path + '\\cordova');
+ copy_to(ROOT + template_folder + '\\cordova', path + '\\cordova');
+ // clean project (all generated files)
+ exec(path + '\\cordova\\clean.bat');
+
+ // update core cordovalib
+ delete_if_exists(path + '\\cordovalib');
+ fso.CreateFolder(path + '\\cordovalib');
+ copy_to(ROOT + template_folder + '\\cordovalib', path + '\\cordovalib');
+
+ // update core plugins
+ // TODO : Remove for 3.0.0
+ delete_if_exists(path + '\\Plugins');
+ fso.CreateFolder(path + '\\Plugins');
+ copy_to(ROOT + template_folder + '\\Plugins', path + '\\Plugins');
+
+ // update cordova.js
+ update_cordova_js(path);
+}
+
+// Replaces the current project with a newly created project, keeping important assets to preserve the app.
+// TODO: Things that need to be kept other then www
+// - WMAppManifest (capabilities etc...)
+// - GUID (for marketplace apps etc...)
+// - Splashscreen and other images etc...
+// - Find more things that should be kept
+function replace_project(path) {
+ //create new project and move www assets into it.
+ Log("WARNING : Upgrading your app with the \'-r\' flag will delete all native and plugin");
+ Log(" components of your application and replace them with the updated core components given");
+ Log(" by this platforms \'bin\\create\' script. It is *HIGHLY RECOMMENDED* to back up your app");
+ Log(" before continuing. The name and package name along with all of the www assets will be");
+ Log(" preserved. Are you sure you wish to continue? (Y/N)");
+ var response;
+ while (response != 'Y') {
+ response = WScript.StdIn.ReadLine();
+ if (response == 'N') {
+ WScript.Quit(2);
+ } else if (response != "Y") {
+ Log("Error : did not recognize '" + response + "'");
+ Log("Are you sure you wish to continue? (Y/N)");
+ }
+ }
+ // place all assets to be preserved in a temperary folder
+ delete_if_exists(ROOT + '\\temp');
+ fso.CreateFolder(ROOT + '\\temp');
+ save_restore(path, ROOT + '\\temp');
+
+ // get app name from WMAppManifest
+ var app_name = get_app_name(path);
+ // get package name from App.xaml
+ var package_name = get_package_name(path);
+ // get the GUID so that app stays the same
+ var app_GUID = get_app_GUID(path);
+ // delete previous project
+ delete_if_exists(path);
+ // create the new project from the current repository
+ exec(ROOT + '\\bin\\create.bat ' + path + ' ' + app_name + ' ' + package_name);
+ // remove default www assets
+ delete_if_exists(path + '\\www');
+ // move www assets back to project folder
+ save_restore(ROOT + '\\temp', path);
+ // cleanup temp folder
+ delete_if_exists(ROOT + '\\temp');
+}
+
+
+
+if (args.Count() > 0) {
+ if(args.Count() > 2) {
+ Log("Error : too many arguments provided.", true);
+ WScript.Quit(1);
+ }
+
+ if (args(0).indexOf("--help") > -1 ||
+ args(0).indexOf("/?") > -1 ) {
+ Usage();
+ WScript.Quit(1);
+ }
+ else if (fso.FolderExists(args(0)) && is_windows_phone_project(args(0))) {
+ if(args.Count() > 1) {
+ /*if(args(1) == '-f' || args(1) == '--force') {
+ //TODO: do something for this
+ Log("ERROR : NOT IMPLEMENTED", true);
+ WScript.Quit(2);
+ }
+ else if(args(1) == '-r' || args(1) == '--replace') {
+ replace_project(args(0));
+ }
+ else {
+ Log('Error : \'' + args(1) + '\' is not regognized as an update option', true);
+ }*/
+ Usage();
+ Log('Error : too many arguments', true);
+ } else if (args.Count() == 1) {
+ update_project(args(0));
+ }
+ }
+ else if (fso.FolderExists(args(0))) {
+ Log("The path provided is not a path to a cordova windows phone project.", true);
+ Log(" Please provide the path to the root folder of your cordova windows phone project.", true);
+ WScript.Quit(2);
+ }
+ else {
+ Log("The given path to the project does not exist.", true);
+ Log(" Please provide a path to the project you would like to update.", true);
+ Usage();
+ WScript.Quit(2);
+ }
+}
+else {
+ Usage();
+ WScript.Quit(1);
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-wp7/blob/159a6ccb/templates/vs/MyTemplateStandAlone.vstemplate
----------------------------------------------------------------------
diff --git a/templates/vs/MyTemplateStandAlone.vstemplate b/templates/vs/MyTemplateStandAlone.vstemplate
index 34b949d..0de2a0e 100644
--- a/templates/vs/MyTemplateStandAlone.vstemplate
+++ b/templates/vs/MyTemplateStandAlone.vstemplate
@@ -98,7 +98,7 @@
<ProjectItem ReplaceParameters="false" TargetFileName="SplashScreenImage.jpg">SplashScreenImage.jpg</ProjectItem>
<ProjectItem ReplaceParameters="false" TargetFileName="VERSION">VERSION</ProjectItem>
<Folder Name="www" TargetFolderName="www">
- <ProjectItem ReplaceParameters="true" TargetFileName="cordova-2.7.0.js">cordova-2.7.0.js</ProjectItem>
+ <ProjectItem ReplaceParameters="true" TargetFileName="cordova.js">cordova.js</ProjectItem>
<Folder Name="css" TargetFolderName="css">
<ProjectItem ReplaceParameters="true" TargetFileName="index.css">index.css</ProjectItem>
</Folder>
@@ -110,6 +110,36 @@
<ProjectItem ReplaceParameters="true" TargetFileName="index.js">index.js</ProjectItem>
</Folder>
</Folder>
+ <Folder Name="cordova" TargetFolderName="cordova">
+ <ProjectItem ReplaceParameters="false" TargetFileName="build.bat">build.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="clean.bat">clean.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="log.bat">log.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="run.bat">run.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="version.bat">version.bat</ProjectItem>
+ <Folder Name="lib" TargetFolderName="lib">
+ <ProjectItem ReplaceParameters="false" TargetFileName="build.js">build.js</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="clean.js">clean.js</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="deploy.js">deploy.js</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="install-device.bat">install-device.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="install-emulator.bat">install-emulator.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="list-devices.bat">list-devices.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="list-emulator-images.bat">list-emulator-images.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="list-started-emulators.bat">list-started-emulators.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="log.js">log.js</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="start-emulator.bat">start-emulator.bat</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="target-list.js">target-list.js</ProjectItem>
+ <Folder Name="CordovaDeploy" TargetFolderName="CordovaDeploy">
+ <ProjectItem ReplaceParameters="false" TargetFileName="CordovaDeploy.sln">CordovaDeploy.sln</ProjectItem>
+ <Folder Name="CordovaDeploy" TargetFolderName="CordovaDeploy">
+ <ProjectItem ReplaceParameters="false" TargetFileName="CordovaDeploy.csproj">CordovaDeploy.csproj</ProjectItem>
+ <ProjectItem ReplaceParameters="false" TargetFileName="Program.cs">Program.cs</ProjectItem>
+ <Folder Name="Properties" TargetFolderName="Properties">
+ <ProjectItem ReplaceParameters="false" TargetFileName="AssemblyInfo.cs">AssemblyInfo.cs</ProjectItem>
+ </Folder>
+ </Folder>
+ </Folder>
+ </Folder>
+ </Folder>
</Project>
</TemplateContent>
</VSTemplate>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cordova-wp7/blob/159a6ccb/tooling/scripts/buildjs.js
----------------------------------------------------------------------
diff --git a/tooling/scripts/buildjs.js b/tooling/scripts/buildjs.js
index b5c51ad..4bfba53 100644
--- a/tooling/scripts/buildjs.js
+++ b/tooling/scripts/buildjs.js
@@ -38,9 +38,6 @@ var args = WScript.Arguments,
VERSION = read(ROOT+'\\VERSION').replace(/\r\n/,'').replace(/\n/,''),
BUILD_DESTINATION;
-function Log(msg) {
- WScript.StdOut.WriteLine(msg);
-}
// help function
function Usage()
@@ -58,6 +55,16 @@ function Usage()
Log("");
}
+// logs messaged to stdout and stderr
+function Log(msg, error) {
+ if (error) {
+ WScript.StdErr.WriteLine(msg);
+ }
+ else {
+ WScript.StdOut.WriteLine(msg);
+ }
+}
+
// returns the contents of a file
function read(filename) {
//Log('Reading in ' + filename);
@@ -101,7 +108,7 @@ function exec_verbose(command) {
if(!oShell.StdErr.AtEndOfStream)
{
var err_line = oShell.StdErr.ReadAll();
- WScript.StdErr.WriteLine(err_line);
+ Log(err_line, true);
WScript.Quit(1);
}
}
@@ -134,8 +141,8 @@ function build_js(path)
//copy the javascript wherever it needs to go.
wscript_shell.CurrentDirectory = path + '\\temp\\cordova-js\\pkg';
- exec('%comspec% /c copy /Y cordova.windowsphone.js ' + path + STANDALONE_PATH + '\\www\\cordova-' + VERSION + '.js');
- exec('%comspec% /c copy /Y cordova.windowsphone.js ' + path + EXAMPLE_PATH + '\\www\\cordova-' + VERSION + '.js');
+ exec('%comspec% /c copy /Y cordova.windowsphone.js ' + path + STANDALONE_PATH + '\\www\\cordova.js');
+ exec('%comspec% /c copy /Y cordova.windowsphone.js ' + path + EXAMPLE_PATH + '\\www\\cordova.js');
//TODO: Delete old cordova.js (done in reversion.js)
@@ -154,10 +161,10 @@ function set_path(some_arg)
}
else
{
- Log("ERROR: The given path is not a cordova-wp7 repo, or");
- Log(" does not exist. If your trying to reversion a");
- Log(" cordova repo other then this one, please provide");
- Log(" it's path in the form: -p:C:\\Path\\to\\repo");
+ Log("ERROR: The given path is not a cordova-wp7 repo, or", true);
+ Log(" does not exist. If your trying to reversion a", true);
+ Log(" cordova repo other then this one, please provide", true);
+ Log(" it's path in the form: -p:C:\\Path\\to\\repo", true);
WScript.Quit(1);
}
@@ -193,8 +200,8 @@ if(args.Count() > 0)
else if(set_path(arg(0))) {} //do nothing
else
{
- Log("The provided version number is invalid, please provide");
- Log(" a version number in the format Major.Minor.Fix[rc#]");
+ Log("The provided version number is invalid, please provide", true);
+ Log(" a version number in the format Major.Minor.Fix[rc#]", true);
Usage();
WScript.Quit(1);
}
http://git-wip-us.apache.org/repos/asf/cordova-wp7/blob/159a6ccb/tooling/scripts/dist.js
----------------------------------------------------------------------
diff --git a/tooling/scripts/dist.js b/tooling/scripts/dist.js
index 4303202..bca8b11 100644
--- a/tooling/scripts/dist.js
+++ b/tooling/scripts/dist.js
@@ -35,6 +35,9 @@ Famework
var fso = WScript.CreateObject('Scripting.FileSystemObject'),
wscript_shell = WScript.CreateObject("WScript.Shell");
+//Replace root directory or create new directory?
+var replace = false;
+
//Set up directory structure of current release
//arguments passed in
var args = WScript.Arguments,
@@ -49,8 +52,6 @@ var args = WScript.Arguments,
var BUILD_DESTINATION;
//current script that is running
var current_script = "dist";
-// replace the directory
-var replace = false;
/*************************************************/
@@ -59,13 +60,14 @@ var replace = false;
// help function
-function Usage() {
+function Usage()
+{
Log("");
Log("This is a command line tool for building new releases. It will package a new release");
Log(" of a cordova-wp7 project, reversioning it to match the VERSION file in the root directory.");
- Log("Usage: dist [ <NEW_PATH_FOR_BUILD> | -f ] ");
- Log(" -f : force tool to reversion the current repositoy.");
- Log(" <NEW_PATH_FOR_BUILD> : path to create the new reversioned repositoy in.");
+ Log("Usage: dist [ <PATH_TO_NEW_REPO> | -f ] ");
+ Log(" -f : reversion the repositoy this script is in.");
+ Log(" <PATH_TO_NEW_REPO> : path to create the new reversioned repositoy in.");
Log("");
}
@@ -79,17 +81,20 @@ function Log(msg, error) {
}
}
+
// returns the contents of a file
function read(filename) {
//Log('Reading in ' + filename);
- if(fso.FileExists(filename)) {
+ if(fso.FileExists(filename))
+ {
var f=fso.OpenTextFile(filename, 1,2);
var s=f.ReadAll();
f.Close();
return s;
}
- else {
- Log('Cannot read non-existant file : ' + filename, true);
+ else
+ {
+ Log('Cannot read non-existant file : ' + filename);
WScript.Quit(1);
}
return null;
@@ -109,7 +114,8 @@ function exec(command) {
}
}
//Check to make sure our scripts did not encounter an error
- if(!oShell.StdErr.AtEndOfStream) {
+ if(!oShell.StdErr.AtEndOfStream)
+ {
var err_line = oShell.StdErr.ReadAll();
Log(err_line, true);
Log("ERROR: Could not complete distribution, failed while running: " + current_script, true);
@@ -117,7 +123,8 @@ function exec(command) {
}
}
-function space() {
+function space()
+{
Log("");
Log("*****************************************************");
Log("");
@@ -163,7 +170,6 @@ if (args.Count() > 0) {
Log("Error : too many arguments provided.", true);
WScript.Quit(1);
}
-
}
else {
Usage();
@@ -200,9 +206,10 @@ space();
/** - build cordova.js **/
/** - windows.cordova.js -> templates + example **/
/*************************************************/
-current_script = "buildjs.js";
-exec('cscript ' + BUILD_DESTINATION + SCRIPTS + '\\buildjs.js //nologo');
-space();
+// New Workflow does not require building the new js, it should already be in place.
+// current_script = "buildjs.js";
+// exec('cscript ' + BUILD_DESTINATION + SCRIPTS + '\\buildjs.js //nologo');
+// space();
/*************************************************/
/****************** Step 5 *********************/
http://git-wip-us.apache.org/repos/asf/cordova-wp7/blob/159a6ccb/tooling/scripts/package.js
----------------------------------------------------------------------
diff --git a/tooling/scripts/package.js b/tooling/scripts/package.js
index f3970a8..b5f882d 100644
--- a/tooling/scripts/package.js
+++ b/tooling/scripts/package.js
@@ -43,7 +43,6 @@ var ADD_TO_VS = false;
// build the dll?
var BUILD_DLL = false;
-function Log(msg) { WScript.StdOut.WriteLine(msg); }
// help function
function Usage()
@@ -57,6 +56,16 @@ function Usage()
Log("");
}
+// logs messaged to stdout and stderr
+function Log(msg, error) {
+ if (error) {
+ WScript.StdErr.WriteLine(msg);
+ }
+ else {
+ WScript.StdOut.WriteLine(msg);
+ }
+}
+
// returns the contents of a file
function read(filename) {
//Log('Reading in ' + filename);
@@ -100,7 +109,7 @@ function exec_verbose(command) {
if(!oShell.StdErr.AtEndOfStream)
{
var err_line = oShell.StdErr.ReadAll();
- WScript.StdErr.WriteLine(err_line);
+ Log(err_lin, true);
WScript.Quit(1);
}
}
@@ -121,7 +130,7 @@ function package_templates()
exec('%comspec% /c copy /Y ' + BUILD_DESTINATION + TEMPLATES_PATH + '\\vs\\pg_templatePreview.jpg ' + BUILD_DESTINATION + STANDALONE_PATH + '\\__PreviewImage.jpg');
exec('%comspec% /c copy /Y ' + BUILD_DESTINATION + '\\VERSION ' + BUILD_DESTINATION + STANDALONE_PATH);
- exec_verbose('cscript ' + BUILD_DESTINATION + '\\tooling\\scripts\\win-zip.js ' + template_path + ' ' + BUILD_DESTINATION + STANDALONE_PATH + '\\ //nologo');
+ zip_project(template_path, BUILD_DESTINATION + STANDALONE_PATH);
if(ADD_TO_VS)
@@ -139,6 +148,41 @@ function package_templates()
}
}
+function zip_project(zip_path, project_path)
+{
+ // create empty ZIP file and open for adding
+ var file = fso.CreateTextFile(zip_path, true);
+
+ // create twenty-two byte "fingerprint" for .zip
+ file.write("PK");
+ file.write(String.fromCharCode(5));
+ file.write(String.fromCharCode(6));
+ file.write('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
+ file.Close();
+
+ // open .zip foder and copy contents of project_path to zip_path
+ var zipFolder = shell.NameSpace(zip_path);
+ var sourceItems = shell.NameSpace(project_path).items();
+ if (zipFolder !== null) {
+ zipFolder.CopyHere(sourceItems, 4|20|16);
+ var maxTime = 5000;
+ while(zipFolder.items().Count < sourceItems.Count)
+ {
+ maxTime -= 100;
+ if(maxTime > 0 ) {
+ WScript.Sleep(100);
+ }
+ else {
+ Log('Failed to create .zip file.', true);
+ break;
+ }
+ }
+ }
+ else {
+ Log('Failed to create .zip file.', true);
+ }
+}
+
// builds the new cordova dll and copys it to the full template (only done because of the version referance in Device.cs)
function build_dll()
{
http://git-wip-us.apache.org/repos/asf/cordova-wp7/blob/159a6ccb/tooling/scripts/reversion.js
----------------------------------------------------------------------
diff --git a/tooling/scripts/reversion.js b/tooling/scripts/reversion.js
index 3b42fc4..8bf5ed1 100644
--- a/tooling/scripts/reversion.js
+++ b/tooling/scripts/reversion.js
@@ -24,6 +24,9 @@ var fso = WScript.CreateObject('Scripting.FileSystemObject'),
shell = WScript.CreateObject("shell.application"),
wscript_shell = WScript.CreateObject("WScript.Shell");
+//Get new version from git or build off this version?
+var GET_NEW = false;
+
//Set up directory structure of current release
//arguments passed in
var args = WScript.Arguments,
@@ -138,18 +141,9 @@ function updateVersionNumbers() {
// update standalone project
exec('%comspec% /c copy /Y /V ' + BUILD_DESTINATION + "\\VERSION " + BUILD_DESTINATION + STANDALONE_PATH + "\\VERSION");
var cordova_regex = /cordova-(\d+)[.](\d+)[.](\d+)(rc\d)?/g; //Matches *first* cordova-x.x.x[rcx] (just ad g at end to make global)
- replaceInFile(BUILD_DESTINATION + STANDALONE_PATH + '\\CordovaAppProj.csproj', cordova_regex, "cordova-" + VERSION);
- replaceInFile(BUILD_DESTINATION + STANDALONE_PATH + '\\www\\index.html', cordova_regex, "cordova-" + VERSION);
version_regex = /return\s*\"(\d+)[.](\d+)[.](\d+)(rc\d)?/; //Matches return "x.x.x[rcx]
-
- WScript.StdOut.WriteLine("path = " + BUILD_DESTINATION + CORDOVA_LIB + '\\Plugins\\Device.cs');
replaceInFile(BUILD_DESTINATION + CORDOVA_LIB + '\\..\\Plugins\\Device.cs', version_regex, "return \"" + VERSION);
- // update example proj
- replaceInFile(BUILD_DESTINATION + EXAMPLE_PATH + '\\CordovaExample.csproj', cordova_regex, "cordova-" + VERSION);
- version_regex = /VERSION\s*\=\s*\'(\d+)[.](\d+)[.](\d+)(rc\d)?/; //Matches VERSION = x.x.x[rcx]
- replaceInFile(BUILD_DESTINATION + EXAMPLE_PATH + '\\www\\cordova-current.js', version_regex, "VERSION = \'" + VERSION);
-
// update template discription
version_regex = /Cordova\s*(\d+)[.](\d+)[.](\d+)(rc\d)?\s*Windows/g; //Matches version: x.x.x[rcx]
replaceInFile(BUILD_DESTINATION + TEMPLATES_PATH + '\\vs\\description.txt', version_regex, "Cordova " + VERSION + " Windows");
@@ -160,7 +154,6 @@ function updateVersionNumbers() {
replaceInFile(BUILD_DESTINATION + TEMPLATES_PATH + '\\vs\\MyTemplateStandAlone.vstemplate', name_regex, 'CordovaWP7_' + VERSION.replace(/\./g, '_'));
replaceInFile(BUILD_DESTINATION + TEMPLATES_PATH + '\\vs\\MyTemplateStandAlone.vstemplate', discript_regex, "Cordova " + VERSION);
- replaceInFile(BUILD_DESTINATION + TEMPLATES_PATH + '\\vs\\MyTemplateStandAlone.vstemplate', cordova_regex, "cordova-" + VERSION);
}
// delete all cordova.js and generated files (templates) from old version numbers
http://git-wip-us.apache.org/repos/asf/cordova-wp7/blob/159a6ccb/tooling/scripts/win-zip.js
----------------------------------------------------------------------
diff --git a/tooling/scripts/win-zip.js b/tooling/scripts/win-zip.js
deleted file mode 100644
index 3d8dc1a..0000000
--- a/tooling/scripts/win-zip.js
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Script for zipping the contents of a directory.
- */
-
-// get commman line arguments
-var objArgs = WScript.Arguments;
-var zipPath = objArgs(0);
-var sourcePath = objArgs(1);
-
-
-// create empty ZIP file and open for adding
-var fso = new ActiveXObject("Scripting.FileSystemObject");
-var file = fso.CreateTextFile(zipPath, true);
-
-// create twenty-two byte "fingerprint" for .zip
-file.write("PK");
-file.write(String.fromCharCode(5));
-file.write(String.fromCharCode(6));
-file.write('\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0');
-file.Close();
-
-// open .zip foder and copy contents of sourcePath
-var objShell = new ActiveXObject("shell.application");
-var zipFolder = objShell.NameSpace(zipPath);
-var sourceItems = objShell.NameSpace(sourcePath).items();
-if (zipFolder !== null) {
- zipFolder.CopyHere(sourceItems, 4|20|16);
- WScript.Sleep(4000);
-}
-else {
- WScript.StdErr.WriteLine('Failed to create .zip file.');
-}
\ No newline at end of file