You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by pu...@apache.org on 2012/11/01 18:41:53 UTC

git commit: tool->tools

Updated Branches:
  refs/heads/master 91b9039ea -> 4af31414a
Updated Tags:  refs/tags/2.2.0 [created] 4af31414a


tool->tools


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/commit/4af31414
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/tree/4af31414
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/diff/4af31414

Branch: refs/heads/master
Commit: 4af31414a035beb5f476ebf3b377cb8165f97da2
Parents: 91b9039
Author: Jesse MacFadyen <pu...@gmail.com>
Authored: Thu Nov 1 04:23:47 2012 -0700
Committer: Jesse MacFadyen <pu...@gmail.com>
Committed: Thu Nov 1 04:23:47 2012 -0700

----------------------------------------------------------------------
 windows8/tool/CordovaBuilder/CordovaBuilder.sln    |   20 -
 .../CordovaBuilder/CordovaBuilder.cs               |  307 ---------------
 .../CordovaBuilder/CordovaBuilder.csproj           |   56 ---
 .../CordovaBuilder/Properties/AssemblyInfo.cs      |   33 --
 .../CordovaBuilder/lib/Ionic.Zip.dll               |  Bin 462336 -> 0 bytes
 windows8/tool/scripts/create.bat                   |   25 --
 windows8/tools/CordovaBuilder/CordovaBuilder.sln   |   20 +
 .../CordovaBuilder/CordovaBuilder.cs               |  307 +++++++++++++++
 .../CordovaBuilder/CordovaBuilder.csproj           |   56 +++
 .../CordovaBuilder/Properties/AssemblyInfo.cs      |   33 ++
 .../CordovaBuilder/lib/Ionic.Zip.dll               |  Bin 0 -> 462336 bytes
 windows8/tools/scripts/create.bat                  |   25 ++
 12 files changed, 441 insertions(+), 441 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tool/CordovaBuilder/CordovaBuilder.sln
----------------------------------------------------------------------
diff --git a/windows8/tool/CordovaBuilder/CordovaBuilder.sln b/windows8/tool/CordovaBuilder/CordovaBuilder.sln
deleted file mode 100644
index 198d228..0000000
--- a/windows8/tool/CordovaBuilder/CordovaBuilder.sln
+++ /dev/null
@@ -1,20 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CordovaBuilder", "CordovaBuilder\CordovaBuilder.csproj", "{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}"
-EndProject
-Global
-	GlobalSection(SolutionConfigurationPlatforms) = preSolution
-		Debug|Any CPU = Debug|Any CPU
-		Release|Any CPU = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}.Release|Any CPU.Build.0 = Release|Any CPU
-	EndGlobalSection
-	GlobalSection(SolutionProperties) = preSolution
-		HideSolutionNode = FALSE
-	EndGlobalSection
-EndGlobal

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tool/CordovaBuilder/CordovaBuilder/CordovaBuilder.cs
----------------------------------------------------------------------
diff --git a/windows8/tool/CordovaBuilder/CordovaBuilder/CordovaBuilder.cs b/windows8/tool/CordovaBuilder/CordovaBuilder/CordovaBuilder.cs
deleted file mode 100644
index 3524f9f..0000000
--- a/windows8/tool/CordovaBuilder/CordovaBuilder/CordovaBuilder.cs
+++ /dev/null
@@ -1,307 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Collections.ObjectModel;
-using System.Diagnostics;
-using System.IO;
-
-using Ionic.Zip;
-using System.Text.RegularExpressions;
-
-namespace tooling
-{
-
-    class CordovaBuilder
-    {
-        
-        static void Usage()
-        {
-            Log("Usage: CordovaBuilder [ BuildOutputPath -c:Type ]");
-            Log("    BuildOutputPath : path to save the built application");
-            Log("    -c : which type of project you want to create, 0 for Metro App developers, 1 for Cordova API developers, default is 0");
-            Log("examples:");
-            Log("  CordovaBuilder bin\\Debug");
-            Log("  CordovaBuilder bin\\Release -c:1");
-
-        }
-
-        static void Log(string msg)
-        {
-            Console.WriteLine(msg);
-        }
-
-        static void ReadWait()
-        {
-            Console.WriteLine("\nPress ENTER to continue...");
-            Console.Read();
-        }
-
-        static private void DeleteFolder(string folder)
-        {
-            if (Directory.Exists(folder))
-            {
-                foreach (string file in Directory.GetFileSystemEntries(folder))
-                {
-                    if (File.Exists(file))
-                    {
-                        File.Delete(file);
-                    }
-                    else
-                    {
-                        DeleteFolder(file);
-                    }
-                }
-                Directory.Delete(folder);
-            }
-        }
-
-        static private void ModifyFile(string name, int userChosenType, string root, int length, string source, string result) 
-        {
-            if (userChosenType == 0)
-            {
-                byte[] byteData = new byte[length];
-                char[] charData = new char[length];
-                FileStream readFile;
-
-                try
-                {
-                    readFile = new FileStream(root + name, FileMode.Open);
-                    readFile.Read(byteData, 0, length);
-                    Decoder dec = Encoding.UTF8.GetDecoder();
-                    dec.GetChars(byteData, 0, byteData.Length, charData, 0);
-
-                    string preMergeString = new string(charData);
-                    
-                    Regex reg = new Regex(source);
-                    string ss = reg.Replace(preMergeString, result);
-                    readFile.Close();
-                    
-                    byte[] finalData = new UTF8Encoding().GetBytes(ss);
-                    FileStream writeFile = new FileStream(root + name, FileMode.Open);
-                    writeFile.Write(finalData, 0, finalData.Length);
-                    writeFile.Flush();
-                    writeFile.Close();
-                }
-                catch (IOException e)
-                {
-                    Console.WriteLine("An IO exception has been thrown!");
-                    Console.WriteLine(e.ToString());
-                    Console.ReadLine();
-                }
-            }
-        }
-
-        static private string addToEnvironment()
-        {
-            // add to System Path environment.
-            string path = Environment.GetEnvironmentVariable("Path");
-
-            string[] tempArr = path.Split(';');
-            string[] results = new string[tempArr.Length + 1];
-            string appPath = System.Environment.CurrentDirectory + "\\";
-
-            bool appPathExist = false;
-
-            for (int i = 0; i < tempArr.Length; i++)
-            {
-                if (tempArr[i].Equals(appPath))
-                {
-                    appPathExist = true;
-                }
-                if (!tempArr[i].Contains("CordovaBuilder")) {
-                    results[i] = tempArr[i];
-                }
-            }
-
-            string[] appPaths = appPath.Split('\\');
-            if (appPaths.Length > 5)
-            {
-                if (!appPathExist && appPaths[appPaths.Length - 4].Equals("CordovaBuilder"))
-                {
-                    results[results.Length - 1] = appPath;
-                    
-                    List<string> final = new List<string>();
-                    for (int i = 0; i < results.Length; i++) 
-                    {
-                        if (!"".Equals(results[i]) && results[i] != null) 
-                        {
-                            final.Add(results[i]);
-                        }
-                        
-                    }
-                    string result = String.Join(";", final);
-
-                    Environment.SetEnvironmentVariable("Path", result, EnvironmentVariableTarget.Machine);
-                }
-            }
-            return path;
-        }
-
-        static private void createZip(int userChosenType, string[] currentResults, string outPutPath)
-        {
-            string basePath = "";
-            string baseName = "";
-
-            if (userChosenType == 0)
-            {
-                basePath = String.Join("\\", currentResults) + "\\framework\\Cordova-Metro";
-                baseName = "\\Cordova-Metro.zip";
-            }
-            else if (userChosenType == 1)
-            {
-                basePath = String.Join("\\", currentResults) + "\\src";
-                baseName = "\\CordovaStarter.zip";
-            }
-
-            try
-            {
-                using (ZipFile zip = new ZipFile())
-                {
-                    zip.StatusMessageTextWriter = System.Console.Out;
-
-                    zip.AddDirectory(basePath); // recurses subdirectories
-
-                    zip.Save(outPutPath + baseName);
-                }
-            }
-            catch (System.Exception ex1)
-            {
-                System.Console.Error.WriteLine("exception: " + ex1);
-            }
-        
-        }
-
-        static private string[] mergeJsFiles(string path, int userChosenType)
-        {
-            string currentPath = Environment.GetEnvironmentVariable("Path");
-
-            string[] currentPaths = path.Split(';');
-            string[] currentTmparr = currentPaths[currentPaths.Length - 1].Split('\\');
-
-            for (int i = 0; i < currentPaths.Length; i++)
-            {
-                if (currentPaths[i].EndsWith("tool\\CordovaBuilder\\CordovaBuilder\\bin\\Debug\\") || currentPaths[i].EndsWith("tool\\CordovaBuilder\\CordovaBuilder\\bin\\Release\\"))
-                {
-                    currentTmparr = currentPaths[i].Split('\\');
-                }
-            }
-
-            string[] currentResults = new string[currentTmparr.Length - 6];
-
-            for (int i = 0; i < currentResults.Length; i++)
-            {
-                currentResults[i] = currentTmparr[i];
-            }
-            string currentResult = String.Join("\\", currentResults) + "\\src\\cordova-win8\\js";
-            string[] fileNames = Directory.GetFiles(currentResult, "*.js");
-            string root = String.Join("\\", currentResults) + "\\framework\\Cordova-Metro";
-
-            if (userChosenType == 0)
-            {
-                FileStream fileStream = new FileStream(root + "\\js\\cordova.js", FileMode.Create);
-                BinaryWriter binaryWriter = new BinaryWriter(fileStream);
-                
-                FileStream stream;
-                for (int i = 0; i < fileNames.Length; i++)
-                {
-                    stream = new FileStream(fileNames[i], FileMode.Open);
-                    BinaryReader reader = new BinaryReader(stream);
-                    int length = (int)stream.Length;
-                    byte[] threeBytes = reader.ReadBytes(3);
-                    //int ch = reader.PeekChar();
-                    if (threeBytes[0] == 0xef && threeBytes[1] == 0xbb && threeBytes[2] == 0xbf)
-                    {
-                        length -= 3;
-                    }
-                    else
-                    {
-                        binaryWriter.Write(threeBytes);
-                    }
-
-                    binaryWriter.Write(reader.ReadBytes(length));
-                    //binaryWriter.Write("\n");
-                    reader.Close();
-                    stream.Close();
-                }
-                binaryWriter.Close();
-                fileStream.Close();
-            }
-            return currentResults;
-        }
-
-        static private void cleanProject(int userChosenType, string[] currentResults, string root)
-        {
-            if (userChosenType == 0)
-            {
-                /*string deleteFile = root + "\\js\\default.js";
-                if (File.Exists(deleteFile))
-                {
-                    File.Delete(deleteFile);
-                }*/
-            }
-            else if (userChosenType == 1)
-            {
-                DeleteFolder(String.Join("\\", currentResults) + "\\src\\cordova-win8\\bin");
-                DeleteFolder(String.Join("\\", currentResults) + "\\src\\cordova-win8\\bld");
-            }
-        
-        }
-
-
-        static void Main(string[] args) 
-        {
-            string path = addToEnvironment();
-
-            int userChosenType = 0;
-            string outPutPath = "";
-
-            if (args.Length < 1) 
-            {
-                Usage();
-                ReadWait();
-                return;
-            }
-
-            if (args.Length == 2) 
-            {
-                if (args[1].StartsWith("-c:")) 
-                {
-                    userChosenType = int.Parse(args[1].Substring(3));
-                    if (userChosenType != 1 && userChosenType != 0)
-                    {
-                        Usage();
-                        ReadWait();
-                        return;
-                    }
-                }
-            }
-
-            if (Directory.Exists(args[0]))
-            {
-                DirectoryInfo info = new DirectoryInfo(args[0]);
-                outPutPath = info.FullName;
-            }
-            else 
-            {
-                Log(string.Format("Error: could not find folder of path {0}", args[0]));
-                ReadWait();
-                return;
-            }
-
-            // Merge the JS files.
-            string[] currentResults = mergeJsFiles(path, userChosenType);
-
-            string root = String.Join("\\", currentResults) + "\\framework\\Cordova-Metro";
-            
-            // Modify the default.html.
-            ModifyFile("\\default.html", userChosenType, root, 1000, "js/default.js", "js/cordova.js");
-            
-			// Clean the project.
-            cleanProject(userChosenType, currentResults, root);
-
-            // Create zip.
-            createZip(userChosenType, currentResults, outPutPath);
-         }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tool/CordovaBuilder/CordovaBuilder/CordovaBuilder.csproj
----------------------------------------------------------------------
diff --git a/windows8/tool/CordovaBuilder/CordovaBuilder/CordovaBuilder.csproj b/windows8/tool/CordovaBuilder/CordovaBuilder/CordovaBuilder.csproj
deleted file mode 100644
index 1643c8b..0000000
--- a/windows8/tool/CordovaBuilder/CordovaBuilder/CordovaBuilder.csproj
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
-  <PropertyGroup>
-    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
-    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProjectGuid>{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}</ProjectGuid>
-    <OutputType>Exe</OutputType>
-    <AppDesignerFolder>Properties</AppDesignerFolder>
-    <RootNamespace>CordovaBuilder</RootNamespace>
-    <AssemblyName>CordovaBuilder</AssemblyName>
-    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
-    <FileAlignment>512</FileAlignment>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugSymbols>true</DebugSymbols>
-    <DebugType>full</DebugType>
-    <Optimize>false</Optimize>
-    <OutputPath>bin\Debug\</OutputPath>
-    <DefineConstants>DEBUG;TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
-    <PlatformTarget>AnyCPU</PlatformTarget>
-    <DebugType>pdbonly</DebugType>
-    <Optimize>true</Optimize>
-    <OutputPath>bin\Release\</OutputPath>
-    <DefineConstants>TRACE</DefineConstants>
-    <ErrorReport>prompt</ErrorReport>
-    <WarningLevel>4</WarningLevel>
-  </PropertyGroup>
-  <ItemGroup>
-    <Compile Include="CordovaBuilder.cs" />
-    <Compile Include="Properties\AssemblyInfo.cs" />
-  </ItemGroup>
-  <ItemGroup>
-    <Content Include="lib\Ionic.Zip.dll" />
-  </ItemGroup>
-  <ItemGroup>
-    <Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
-      <HintPath>lib\Ionic.Zip.dll</HintPath>
-    </Reference>
-    <Reference Include="System" />
-  </ItemGroup>
-  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
-  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
-       Other similar extension points exist, see Microsoft.Common.targets.
-  <Target Name="BeforeBuild">
-  </Target>
-  <Target Name="AfterBuild">
-  </Target>
-  -->
-</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tool/CordovaBuilder/CordovaBuilder/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/windows8/tool/CordovaBuilder/CordovaBuilder/Properties/AssemblyInfo.cs b/windows8/tool/CordovaBuilder/CordovaBuilder/Properties/AssemblyInfo.cs
deleted file mode 100644
index 7410239..0000000
--- a/windows8/tool/CordovaBuilder/CordovaBuilder/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,33 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following 
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("CordovaBuilder")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("CordovaBuilder")]
-[assembly: AssemblyCopyright("Copyright  ©  2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible 
-// to COM components.  If you need to access a type in this assembly from 
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("aa0f18b9-5f12-41cd-8012-4f6587c0b23b")]
-
-// Version information for an assembly consists of the following four values:
-//
-//      Major Version
-//      Minor Version 
-//      Build Number
-//      Revision
-//
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tool/CordovaBuilder/CordovaBuilder/lib/Ionic.Zip.dll
----------------------------------------------------------------------
diff --git a/windows8/tool/CordovaBuilder/CordovaBuilder/lib/Ionic.Zip.dll b/windows8/tool/CordovaBuilder/CordovaBuilder/lib/Ionic.Zip.dll
deleted file mode 100644
index 95fa928..0000000
Binary files a/windows8/tool/CordovaBuilder/CordovaBuilder/lib/Ionic.Zip.dll and /dev/null differ

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tool/scripts/create.bat
----------------------------------------------------------------------
diff --git a/windows8/tool/scripts/create.bat b/windows8/tool/scripts/create.bat
deleted file mode 100644
index 25dccbe..0000000
--- a/windows8/tool/scripts/create.bat
+++ /dev/null
@@ -1,25 +0,0 @@
-
-@echo off
-goto start
-
-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.
-
-
-:start
-csc /out:..\CordovaBuilder\CordovaBuilder\bin\Debug\CordovaBuilder.exe ..\CordovaBuilder\CordovaBuilder\CordovaBuilder.cs
-csc /out:..\CordovaBuilder\CordovaBuilder\bin\Release\CordovaBuilder.exe ..\CordovaBuilder\CordovaBuilder\CordovaBuilder.cs
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tools/CordovaBuilder/CordovaBuilder.sln
----------------------------------------------------------------------
diff --git a/windows8/tools/CordovaBuilder/CordovaBuilder.sln b/windows8/tools/CordovaBuilder/CordovaBuilder.sln
new file mode 100644
index 0000000..198d228
--- /dev/null
+++ b/windows8/tools/CordovaBuilder/CordovaBuilder.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CordovaBuilder", "CordovaBuilder\CordovaBuilder.csproj", "{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tools/CordovaBuilder/CordovaBuilder/CordovaBuilder.cs
----------------------------------------------------------------------
diff --git a/windows8/tools/CordovaBuilder/CordovaBuilder/CordovaBuilder.cs b/windows8/tools/CordovaBuilder/CordovaBuilder/CordovaBuilder.cs
new file mode 100644
index 0000000..3524f9f
--- /dev/null
+++ b/windows8/tools/CordovaBuilder/CordovaBuilder/CordovaBuilder.cs
@@ -0,0 +1,307 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Collections.ObjectModel;
+using System.Diagnostics;
+using System.IO;
+
+using Ionic.Zip;
+using System.Text.RegularExpressions;
+
+namespace tooling
+{
+
+    class CordovaBuilder
+    {
+        
+        static void Usage()
+        {
+            Log("Usage: CordovaBuilder [ BuildOutputPath -c:Type ]");
+            Log("    BuildOutputPath : path to save the built application");
+            Log("    -c : which type of project you want to create, 0 for Metro App developers, 1 for Cordova API developers, default is 0");
+            Log("examples:");
+            Log("  CordovaBuilder bin\\Debug");
+            Log("  CordovaBuilder bin\\Release -c:1");
+
+        }
+
+        static void Log(string msg)
+        {
+            Console.WriteLine(msg);
+        }
+
+        static void ReadWait()
+        {
+            Console.WriteLine("\nPress ENTER to continue...");
+            Console.Read();
+        }
+
+        static private void DeleteFolder(string folder)
+        {
+            if (Directory.Exists(folder))
+            {
+                foreach (string file in Directory.GetFileSystemEntries(folder))
+                {
+                    if (File.Exists(file))
+                    {
+                        File.Delete(file);
+                    }
+                    else
+                    {
+                        DeleteFolder(file);
+                    }
+                }
+                Directory.Delete(folder);
+            }
+        }
+
+        static private void ModifyFile(string name, int userChosenType, string root, int length, string source, string result) 
+        {
+            if (userChosenType == 0)
+            {
+                byte[] byteData = new byte[length];
+                char[] charData = new char[length];
+                FileStream readFile;
+
+                try
+                {
+                    readFile = new FileStream(root + name, FileMode.Open);
+                    readFile.Read(byteData, 0, length);
+                    Decoder dec = Encoding.UTF8.GetDecoder();
+                    dec.GetChars(byteData, 0, byteData.Length, charData, 0);
+
+                    string preMergeString = new string(charData);
+                    
+                    Regex reg = new Regex(source);
+                    string ss = reg.Replace(preMergeString, result);
+                    readFile.Close();
+                    
+                    byte[] finalData = new UTF8Encoding().GetBytes(ss);
+                    FileStream writeFile = new FileStream(root + name, FileMode.Open);
+                    writeFile.Write(finalData, 0, finalData.Length);
+                    writeFile.Flush();
+                    writeFile.Close();
+                }
+                catch (IOException e)
+                {
+                    Console.WriteLine("An IO exception has been thrown!");
+                    Console.WriteLine(e.ToString());
+                    Console.ReadLine();
+                }
+            }
+        }
+
+        static private string addToEnvironment()
+        {
+            // add to System Path environment.
+            string path = Environment.GetEnvironmentVariable("Path");
+
+            string[] tempArr = path.Split(';');
+            string[] results = new string[tempArr.Length + 1];
+            string appPath = System.Environment.CurrentDirectory + "\\";
+
+            bool appPathExist = false;
+
+            for (int i = 0; i < tempArr.Length; i++)
+            {
+                if (tempArr[i].Equals(appPath))
+                {
+                    appPathExist = true;
+                }
+                if (!tempArr[i].Contains("CordovaBuilder")) {
+                    results[i] = tempArr[i];
+                }
+            }
+
+            string[] appPaths = appPath.Split('\\');
+            if (appPaths.Length > 5)
+            {
+                if (!appPathExist && appPaths[appPaths.Length - 4].Equals("CordovaBuilder"))
+                {
+                    results[results.Length - 1] = appPath;
+                    
+                    List<string> final = new List<string>();
+                    for (int i = 0; i < results.Length; i++) 
+                    {
+                        if (!"".Equals(results[i]) && results[i] != null) 
+                        {
+                            final.Add(results[i]);
+                        }
+                        
+                    }
+                    string result = String.Join(";", final);
+
+                    Environment.SetEnvironmentVariable("Path", result, EnvironmentVariableTarget.Machine);
+                }
+            }
+            return path;
+        }
+
+        static private void createZip(int userChosenType, string[] currentResults, string outPutPath)
+        {
+            string basePath = "";
+            string baseName = "";
+
+            if (userChosenType == 0)
+            {
+                basePath = String.Join("\\", currentResults) + "\\framework\\Cordova-Metro";
+                baseName = "\\Cordova-Metro.zip";
+            }
+            else if (userChosenType == 1)
+            {
+                basePath = String.Join("\\", currentResults) + "\\src";
+                baseName = "\\CordovaStarter.zip";
+            }
+
+            try
+            {
+                using (ZipFile zip = new ZipFile())
+                {
+                    zip.StatusMessageTextWriter = System.Console.Out;
+
+                    zip.AddDirectory(basePath); // recurses subdirectories
+
+                    zip.Save(outPutPath + baseName);
+                }
+            }
+            catch (System.Exception ex1)
+            {
+                System.Console.Error.WriteLine("exception: " + ex1);
+            }
+        
+        }
+
+        static private string[] mergeJsFiles(string path, int userChosenType)
+        {
+            string currentPath = Environment.GetEnvironmentVariable("Path");
+
+            string[] currentPaths = path.Split(';');
+            string[] currentTmparr = currentPaths[currentPaths.Length - 1].Split('\\');
+
+            for (int i = 0; i < currentPaths.Length; i++)
+            {
+                if (currentPaths[i].EndsWith("tool\\CordovaBuilder\\CordovaBuilder\\bin\\Debug\\") || currentPaths[i].EndsWith("tool\\CordovaBuilder\\CordovaBuilder\\bin\\Release\\"))
+                {
+                    currentTmparr = currentPaths[i].Split('\\');
+                }
+            }
+
+            string[] currentResults = new string[currentTmparr.Length - 6];
+
+            for (int i = 0; i < currentResults.Length; i++)
+            {
+                currentResults[i] = currentTmparr[i];
+            }
+            string currentResult = String.Join("\\", currentResults) + "\\src\\cordova-win8\\js";
+            string[] fileNames = Directory.GetFiles(currentResult, "*.js");
+            string root = String.Join("\\", currentResults) + "\\framework\\Cordova-Metro";
+
+            if (userChosenType == 0)
+            {
+                FileStream fileStream = new FileStream(root + "\\js\\cordova.js", FileMode.Create);
+                BinaryWriter binaryWriter = new BinaryWriter(fileStream);
+                
+                FileStream stream;
+                for (int i = 0; i < fileNames.Length; i++)
+                {
+                    stream = new FileStream(fileNames[i], FileMode.Open);
+                    BinaryReader reader = new BinaryReader(stream);
+                    int length = (int)stream.Length;
+                    byte[] threeBytes = reader.ReadBytes(3);
+                    //int ch = reader.PeekChar();
+                    if (threeBytes[0] == 0xef && threeBytes[1] == 0xbb && threeBytes[2] == 0xbf)
+                    {
+                        length -= 3;
+                    }
+                    else
+                    {
+                        binaryWriter.Write(threeBytes);
+                    }
+
+                    binaryWriter.Write(reader.ReadBytes(length));
+                    //binaryWriter.Write("\n");
+                    reader.Close();
+                    stream.Close();
+                }
+                binaryWriter.Close();
+                fileStream.Close();
+            }
+            return currentResults;
+        }
+
+        static private void cleanProject(int userChosenType, string[] currentResults, string root)
+        {
+            if (userChosenType == 0)
+            {
+                /*string deleteFile = root + "\\js\\default.js";
+                if (File.Exists(deleteFile))
+                {
+                    File.Delete(deleteFile);
+                }*/
+            }
+            else if (userChosenType == 1)
+            {
+                DeleteFolder(String.Join("\\", currentResults) + "\\src\\cordova-win8\\bin");
+                DeleteFolder(String.Join("\\", currentResults) + "\\src\\cordova-win8\\bld");
+            }
+        
+        }
+
+
+        static void Main(string[] args) 
+        {
+            string path = addToEnvironment();
+
+            int userChosenType = 0;
+            string outPutPath = "";
+
+            if (args.Length < 1) 
+            {
+                Usage();
+                ReadWait();
+                return;
+            }
+
+            if (args.Length == 2) 
+            {
+                if (args[1].StartsWith("-c:")) 
+                {
+                    userChosenType = int.Parse(args[1].Substring(3));
+                    if (userChosenType != 1 && userChosenType != 0)
+                    {
+                        Usage();
+                        ReadWait();
+                        return;
+                    }
+                }
+            }
+
+            if (Directory.Exists(args[0]))
+            {
+                DirectoryInfo info = new DirectoryInfo(args[0]);
+                outPutPath = info.FullName;
+            }
+            else 
+            {
+                Log(string.Format("Error: could not find folder of path {0}", args[0]));
+                ReadWait();
+                return;
+            }
+
+            // Merge the JS files.
+            string[] currentResults = mergeJsFiles(path, userChosenType);
+
+            string root = String.Join("\\", currentResults) + "\\framework\\Cordova-Metro";
+            
+            // Modify the default.html.
+            ModifyFile("\\default.html", userChosenType, root, 1000, "js/default.js", "js/cordova.js");
+            
+			// Clean the project.
+            cleanProject(userChosenType, currentResults, root);
+
+            // Create zip.
+            createZip(userChosenType, currentResults, outPutPath);
+         }
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tools/CordovaBuilder/CordovaBuilder/CordovaBuilder.csproj
----------------------------------------------------------------------
diff --git a/windows8/tools/CordovaBuilder/CordovaBuilder/CordovaBuilder.csproj b/windows8/tools/CordovaBuilder/CordovaBuilder/CordovaBuilder.csproj
new file mode 100644
index 0000000..1643c8b
--- /dev/null
+++ b/windows8/tools/CordovaBuilder/CordovaBuilder/CordovaBuilder.csproj
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{7D6262C4-A2B4-4FE6-87A7-650866FEE54B}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>CordovaBuilder</RootNamespace>
+    <AssemblyName>CordovaBuilder</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Compile Include="CordovaBuilder.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <Content Include="lib\Ionic.Zip.dll" />
+  </ItemGroup>
+  <ItemGroup>
+    <Reference Include="Ionic.Zip, Version=1.9.1.8, Culture=neutral, PublicKeyToken=edbe51ad942a3f5c, processorArchitecture=MSIL">
+      <SpecificVersion>False</SpecificVersion>
+      <HintPath>lib\Ionic.Zip.dll</HintPath>
+    </Reference>
+    <Reference Include="System" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tools/CordovaBuilder/CordovaBuilder/Properties/AssemblyInfo.cs
----------------------------------------------------------------------
diff --git a/windows8/tools/CordovaBuilder/CordovaBuilder/Properties/AssemblyInfo.cs b/windows8/tools/CordovaBuilder/CordovaBuilder/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..7410239
--- /dev/null
+++ b/windows8/tools/CordovaBuilder/CordovaBuilder/Properties/AssemblyInfo.cs
@@ -0,0 +1,33 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("CordovaBuilder")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("CordovaBuilder")]
+[assembly: AssemblyCopyright("Copyright  ©  2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("aa0f18b9-5f12-41cd-8012-4f6587c0b23b")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tools/CordovaBuilder/CordovaBuilder/lib/Ionic.Zip.dll
----------------------------------------------------------------------
diff --git a/windows8/tools/CordovaBuilder/CordovaBuilder/lib/Ionic.Zip.dll b/windows8/tools/CordovaBuilder/CordovaBuilder/lib/Ionic.Zip.dll
new file mode 100644
index 0000000..95fa928
Binary files /dev/null and b/windows8/tools/CordovaBuilder/CordovaBuilder/lib/Ionic.Zip.dll differ

http://git-wip-us.apache.org/repos/asf/incubator-cordova-windows/blob/4af31414/windows8/tools/scripts/create.bat
----------------------------------------------------------------------
diff --git a/windows8/tools/scripts/create.bat b/windows8/tools/scripts/create.bat
new file mode 100644
index 0000000..25dccbe
--- /dev/null
+++ b/windows8/tools/scripts/create.bat
@@ -0,0 +1,25 @@
+
+@echo off
+goto start
+
+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.
+
+
+:start
+csc /out:..\CordovaBuilder\CordovaBuilder\bin\Debug\CordovaBuilder.exe ..\CordovaBuilder\CordovaBuilder\CordovaBuilder.cs
+csc /out:..\CordovaBuilder\CordovaBuilder\bin\Release\CordovaBuilder.exe ..\CordovaBuilder\CordovaBuilder\CordovaBuilder.cs
\ No newline at end of file