From 667eac3b2c6a8021ab862048b77eaa493d368ac2 Mon Sep 17 00:00:00 2001 From: Jonahss Date: Fri, 28 Feb 2014 14:13:02 -0800 Subject: [PATCH 1/3] reset.bat fixed to run on windows --- reset.bat | 420 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 214 insertions(+), 206 deletions(-) diff --git a/reset.bat b/reset.bat index 2f7d2d3e181..c2a7e338a41 100644 --- a/reset.bat +++ b/reset.bat @@ -1,206 +1,214 @@ -@echo off - -:: Go to directory containing batch file -FOR /f %%i in ("%0") DO SET curpath=%%~dpi -CD /d %curpath% - -:: Flags to determine which parts will be executed -SET doDev=0 -SET doSelendroid=0 -SET doAndroid=0 -SET doVerbose=0 -SET doForce=0 -SET pigsFly=0 - -:: Read in command line switches -:loop -IF "%~1" neq "" ( - IF "%1" == "--dev" SET doDev=1 - IF "%1" == "--android" SET doAndroid=1 - IF "%1" == "--selendroid" SET doSelendroid=1 - IF "%1" == "--verbose" SET doVerbose=1 - IF "%1" == "--force" SET doForce=1 - IF "%1" == "--chromedriver-version" IF "%2" neq "" ( - SET "chromedriver_version=%2" - shift - ) - shift - goto :loop -) - -:: If nothing is flagged do only android -IF %doDev% == 0 IF %doSelendroid% == 0 IF %doAndroid% == 0 SET doAndroid=1 - -:: Install Package and Dependencies -ECHO. -ECHO =====Installing dependencies with npm===== -ECHO. -CALL :runCmd "npm install ." - -:: Install Dev Dependencies -if %doDev% == 1 ( - ECHO. - ECHO =====Installing development dependencies with npm===== - ECHO. - CALL :runCmd "npm install . --dev" - ECHO. -) - -:: Reset Android -if %doAndroid% == 1 ( - ECHO. - ECHO =====Resetting Android===== - ECHO. - CALL :runCmd "node_modules\.bin\grunt configAndroidBootstrap" - CALL :runCmd "node_modules\.bin\grunt buildAndroidBootstrap" - CALL :runCmd "node_modules\.bin\grunt setConfigVer:android" - ECHO. - ECHO =====Reset Android Complete===== - - ECHO. - ECHO =====Resetting Unlock.apk===== - ECHO. - CALL :runCmd "RD /S /Q build\unlock_apk | VER > NUL" - CALL :runCmd "MKDIR build\unlock_apk" - ECHO Building Unlock.apk - CALL :runCmd "git submodule update --init submodules\unlock_apk" - CALL :runCmd "PUSHD submodules\unlock_apk" - CALL :runCmd "ant clean" - CALL :runCmd "ant debug" - CALL :runCmd "POPD" - CALL :runCmd "COPY submodules\unlock_apk\bin\unlock_apk-debug.apk build\unlock_apk\unlock_apk-debug.apk" - ECHO. - ECHO =====Reset Unlock.apk Complete===== - - :: Reset Android Dev - IF %doDev% == 1 ( - ECHO. - ECHO =====Resetting API Demos===== - ECHO. - ECHO Cloning/updating Android test app: ApiDemos - CALL :runCmd "git submodule update --init submodules\ApiDemos" - CALL :runCmd "RD /S /Q sample-code\apps\ApiDemos | VER > NUL" - CALL :runCmd "MKDIR sample-code\apps\ApiDemos" - CALL :runCmd "XCOPY submodules\ApiDemos sample-code\apps\ApiDemos /E /Q" - CALL :runCmd "node_modules\.bin\grunt configAndroidApp:ApiDemos" - CALL :runCmd "node_modules\.bin\grunt buildAndroidApp:ApiDemos" - ECHO. - ECHO =====Reset API Demos Complete===== - ) - - :: Reset ChromeDriver - echo =====Resetting ChromeDriver===== - SET "chromedriver_build_directory=.\build\chromedriver\windows" - echo Building directory structure - IF NOT EXIST .\build CALL :runCmd "mkdir .\build" - IF NOT EXIST .\build\chromedriver CALL :runCmd "mkdir .\build\chromedriver" - IF NOT EXIST .\build\chromedriver\windows CALL :runCmd "mkdir %chromedriver_build_directory%" - - echo Removing old files - IF EXIST %chromedriver_build_directory%\chromedriver.zip CALL :runCmd "del %chromedriver_build_directory%\chromedriver.zip" - IF EXIST %chromedriver_build_directory%\chromedriver.exe CALL :runCmd "del %chromedriver_build_directory%\chromedriver.exe" - - IF NOT DEFINED chromedriver_version ( - echo Finding latest version - for /f "delims=" %%a in ('curl -L http://chromedriver.storage.googleapis.com/LATEST_RELEASE') do SET "chromedriver_version=%%a" - ) - - echo Downloading and installing version %chromedriver_version% - CALL :runCmd "curl -L http://chromedriver.storage.googleapis.com/%chromedriver_version%/chromedriver_win32.zip -o %chromedriver_build_directory%\chromedriver.zip" - CALL :runCmd "PUSHD %chromedriver_build_directory%" - CALL :runCmd "unzip chromedriver.zip" - CALL :runCmd "del chromedriver.zip" - CALL :runCmd "POPD" -) - -:: Reset Selendroid -IF %doSelendroid% == 1 ( - ECHO. - ECHO =====Resetting Selendroid===== - ECHO. - ECHO Clearing out any old modified server apks - CALL :runCmd "RD -/S /Q %windir%\Temp\selendroid*.apk | VER > NUL" - ECHO Cloning/updating selendroid - CALL :runCmd "RD -/S /Q submodules\selendroid\selendroid-server\target | VER > NUL" - CALL :runCmd "git submodule update --init submodules\selendroid" - CALL :runCmd "RD /S /Q selendroid | VER > NUL" - ECHO Building selendroid server and supporting libraries - CALL :runCmd "set MAVEN_OPTS=-Xss1024k" - CALL :runCmd "node_modules\.bin\grunt buildSelendroidServer" - CALL :runCmd "set MAVEN_OPTS=" - - :: Reset Selendroid Dev - IF %doDev% == 1 ( - ECHO. - ECHO =====Resetting Selendroid - Dev===== - ECHO. - ECHO Linking selendroid test app: WebViewDemo - CALL :runCmd "RD /S /Q sample-code\apps\WebViewDemo | VER > NUL" - CALL :runCmd "MKDIR sample-code\apps\WebViewDemo" - CALL :runCmd "XCOPY submodules\selendroid\selendroid-test-app sample-code\apps\WebViewDemo /E /Q" - CALL :uninstallAndroidApp com.example.android.apis.selendroid - CALL :uninstallAndroidApp io.selendroid.testapp - CALL :uninstallAndroidApp io.selendroid.testapp.selendroid - CALL :uninstallAndroidApp org.openqa.selendroid.testapp - CALL :uninstallAndroidApp openqa.selendroid.testapp.selendroid - ECHO. - ECHO =====Reset Selendroid - Dev Complete===== - ) - - ECHO Setting Selendroid config to Appium's version - CALL :runCmd "node_modules\.bin\grunt setConfigVer:selendroid" - ECHO. - ECHO =====Reset Selendroid Complete===== -) -:: Reset Gappium -IF %pigsFly% == 1 ( - ECHO. - ECHO =====Resetting Gappium===== - ECHO. - ECHO Clearing out old links - CALL :runCmd "RD /S /Q sample-code\apps\io.appium.gappium.sampleapp | VER > NUL" - ECHO Cloning/updating Gappium - CALL :runCmd "git submodule update --init submodules\io.appium.gappium.sampleapp" - CALL :runCmd "PUSHD submodules\io.appium.gappium.sampleapp" - ECHO Building Gappium test app - CALL :runCmd "reset.bat" - CALL :runCmd "POPD" - ECHO Linking Gappium test app - CALL :runCmd "XCOPY submodules\io.appium.gappium.sampleapp sample-code\apps\io.appium.gappium.sampleapp /E /Q" - ECHO. - ECHO =====Reset Gappium===== -) -GOTO :EOF - -:: Function to uninstall an Android app -:uninstallAndroidApp - ECHO Attempting to uninstall android app %~1 - CALL :runCmd "adb uninstall %~1 | VER > NUL" -GOTO :EOF - -:: Function to run commands -:runCmd - function to run a command - IF %doVerbose% == 1 ECHO %~1 - CALL %~1 - IF %ERRORLEVEL% NEQ 0 IF %doForce% == 0 ( - CD /D %curpath% - ECHO. - ECHO Stopping because there was an error and --force was not used - CALL :halt 1 - ) -GOTO :EOF - -:: Sets the errorlevel and stops the batch immediately -:halt -CALL :__SetErrorLevel %1 -CALL :__ErrorExit 2> NUL -GOTO :EOF - -:__ErrorExit -REM Creates a syntax error, stops immediately -() -GOTO :EOF - -:__SetErrorLevel -EXIT /B %TIME:~-2% -GOTO :EOF +@echo off + +:: Go to directory containing batch file +FOR /f %%i in ("%0") DO SET curpath=%%~dpi +CD /d %curpath% + +:: Flags to determine which parts will be executed +SET doDev=0 +SET doSelendroid=0 +SET doAndroid=0 +SET doVerbose=0 +SET doForce=0 +SET pigsFly=0 + +:: Read in command line switches +:loop +IF "%~1" neq "" ( + IF "%1" == "--dev" SET doDev=1 + IF "%1" == "--android" SET doAndroid=1 + IF "%1" == "--selendroid" SET doSelendroid=1 + IF "%1" == "--verbose" SET doVerbose=1 + IF "%1" == "--force" SET doForce=1 + IF "%1" == "--chromedriver-version" IF "%2" neq "" ( + SET "chromedriver_version=%2" + shift + ) + shift + goto :loop +) + +:: If nothing is flagged do only android +IF %doDev% == 0 IF %doSelendroid% == 0 IF %doAndroid% == 0 SET doAndroid=1 + +:: Install Package and Dependencies +ECHO. +ECHO =====Installing dependencies with npm===== +ECHO. +CALL :runCmd "npm install ." +ECHO =====Finished installing dependencies with npm===== +ECHO. + +:: Install Dev Dependencies +if %doDev% == 1 ( + ECHO. + ECHO =====Installing development dependencies with npm===== + ECHO. + CALL :runCmd "npm install . --dev" + ECHO =====Finished installing development dependencies with npm===== + ECHO. +) + +:: Reset Android +if %doAndroid% == 1 ( + ECHO. + ECHO =====Resetting Android===== + ECHO. + CALL :runCmd "node_modules\.bin\grunt configAndroidBootstrap" + CALL :runCmd "node_modules\.bin\grunt buildAndroidBootstrap" + CALL :runCmd "node_modules\.bin\grunt setConfigVer:android" + ECHO. + ECHO =====Reset Android Complete===== + + ECHO. + ECHO =====Resetting Unlock.apk===== + ECHO. + CALL :runCmd "RD /S /Q build\unlock_apk | VER > NUL" + CALL :runCmd "MKDIR build\unlock_apk" + ECHO Building Unlock.apk + CALL :runCmd "git submodule update --init submodules\unlock_apk" + CALL :runCmd "PUSHD submodules\unlock_apk" + CALL :runCmd "ant clean" + CALL :runCmd "ant debug" + CALL :runCmd "POPD" + CALL :runCmd "COPY submodules\unlock_apk\bin\unlock_apk-debug.apk build\unlock_apk\unlock_apk-debug.apk" + ECHO. + ECHO =====Reset Unlock.apk Complete===== + + :: Reset Android Dev + IF %doDev% == 1 ( + ECHO. + ECHO =====Resetting API Demos===== + ECHO. + ECHO Cloning/updating Android test app: ApiDemos + CALL :runCmd "git submodule update --init submodules\ApiDemos" + CALL :runCmd "RD /S /Q sample-code\apps\ApiDemos | VER > NUL" + CALL :runCmd "MKDIR sample-code\apps\ApiDemos" + CALL :runCmd "XCOPY submodules\ApiDemos sample-code\apps\ApiDemos /E /Q" + CALL :runCmd "node_modules\.bin\grunt configAndroidApp:ApiDemos" + CALL :runCmd "node_modules\.bin\grunt buildAndroidApp:ApiDemos" + ECHO. + ECHO =====Reset API Demos Complete===== + ) + + :: Reset ChromeDriver + echo =====Resetting ChromeDriver===== + setlocal enabledelayedexpansion + SET "chromedriver_build_directory=.\build\chromedriver\windows" + echo Building directory structure + IF NOT EXIST .\build CALL :runCmd "mkdir .\build" + IF NOT EXIST .\build\chromedriver CALL :runCmd "mkdir .\build\chromedriver" + IF NOT EXIST .\build\chromedriver\windows CALL :runCmd "mkdir !chromedriver_build_directory!" + + echo Removing old files + IF EXIST !chromedriver_build_directory!\chromedriver.zip CALL :runCmd "del !chromedriver_build_directory!\chromedriver.zip" + IF EXIST !chromedriver_build_directory!\chromedriver.exe CALL :runCmd "del !chromedriver_build_directory!\chromedriver.exe" + + IF NOT DEFINED chromedriver_version ( + echo Finding latest version + for /f "delims=" %%a in ('curl -L http://chromedriver.storage.googleapis.com/LATEST_RELEASE') do SET "chromedriver_version=%%a" + ) + + echo !chromedriver_build_directory! + echo Downloading and installing version !chromedriver_version! + CALL :runCmd "curl -L http://chromedriver.storage.googleapis.com/!chromedriver_version!/chromedriver_win32.zip -o !chromedriver_build_directory!\chromedriver.zip" + CALL :runCmd "PUSHD !chromedriver_build_directory!" + CALL :runCmd "jar xf chromedriver.zip" + CALL :runCmd "del chromedriver.zip" + CALL :runCmd "POPD" + + echo =====Reset ChromeDriver Complete===== +) + +:: Reset Selendroid +IF %doSelendroid% == 1 ( + ECHO. + ECHO =====Resetting Selendroid===== + ECHO. + ECHO Clearing out any old modified server apks + CALL :runCmd "RD -/S /Q %windir%\Temp\selendroid*.apk | VER > NUL" + ECHO Cloning/updating selendroid + CALL :runCmd "RD -/S /Q submodules\selendroid\selendroid-server\target | VER > NUL" + CALL :runCmd "git submodule update --init submodules\selendroid" + CALL :runCmd "RD /S /Q selendroid | VER > NUL" + ECHO Building selendroid server and supporting libraries + CALL :runCmd "set MAVEN_OPTS=-Xss1024k" + CALL :runCmd "node_modules\.bin\grunt buildSelendroidServer" + CALL :runCmd "set MAVEN_OPTS=" + + :: Reset Selendroid Dev + IF %doDev% == 1 ( + ECHO. + ECHO =====Resetting Selendroid - Dev===== + ECHO. + ECHO Linking selendroid test app: WebViewDemo + CALL :runCmd "RD /S /Q sample-code\apps\WebViewDemo | VER > NUL" + CALL :runCmd "MKDIR sample-code\apps\WebViewDemo" + CALL :runCmd "XCOPY submodules\selendroid\selendroid-test-app sample-code\apps\WebViewDemo /E /Q" + CALL :uninstallAndroidApp com.example.android.apis.selendroid + CALL :uninstallAndroidApp io.selendroid.testapp + CALL :uninstallAndroidApp io.selendroid.testapp.selendroid + CALL :uninstallAndroidApp org.openqa.selendroid.testapp + CALL :uninstallAndroidApp openqa.selendroid.testapp.selendroid + ECHO. + ECHO =====Reset Selendroid - Dev Complete===== + ) + + ECHO Setting Selendroid config to Appium's version + CALL :runCmd "node_modules\.bin\grunt setConfigVer:selendroid" + ECHO. + ECHO =====Reset Selendroid Complete===== +) +:: Reset Gappium +IF %pigsFly% == 1 ( + ECHO. + ECHO =====Resetting Gappium===== + ECHO. + ECHO Clearing out old links + CALL :runCmd "RD /S /Q sample-code\apps\io.appium.gappium.sampleapp | VER > NUL" + ECHO Cloning/updating Gappium + CALL :runCmd "git submodule update --init submodules\io.appium.gappium.sampleapp" + CALL :runCmd "PUSHD submodules\io.appium.gappium.sampleapp" + ECHO Building Gappium test app + CALL :runCmd "reset.bat" + CALL :runCmd "POPD" + ECHO Linking Gappium test app + CALL :runCmd "XCOPY submodules\io.appium.gappium.sampleapp sample-code\apps\io.appium.gappium.sampleapp /E /Q" + ECHO. + ECHO =====Reset Gappium===== +) +ECHO Done, No Errors +GOTO :EOF + +:: Function to uninstall an Android app +:uninstallAndroidApp + ECHO Attempting to uninstall android app %~1 + CALL :runCmd "adb uninstall %~1 | VER > NUL" +GOTO :EOF + +:: Function to run commands +:runCmd - function to run a command + IF %doVerbose% == 1 ECHO %~1 + CALL %~1 + IF %ERRORLEVEL% NEQ 0 IF %doForce% == 0 ( + CD /D %curpath% + ECHO. + ECHO Stopping because there was an error and --force was not used + CALL :halt 1 + ) +GOTO :EOF + +:: Sets the errorlevel and stops the batch immediately +:halt +CALL :__SetErrorLevel %1 +CALL :__ErrorExit 2> NUL +GOTO :EOF + +:__ErrorExit +REM Creates a syntax error, stops immediately +() +GOTO :EOF + +:__SetErrorLevel +EXIT /B %TIME:~-2% +GOTO :EOF From 4d62ba745918c91ceae37d712496ca42a0126af8 Mon Sep 17 00:00:00 2001 From: Jonahss Date: Mon, 3 Mar 2014 11:52:29 -0800 Subject: [PATCH 2/3] don't wait on connecting an android device --- reset.bat | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/reset.bat b/reset.bat index c2a7e338a41..9aed348e241 100644 --- a/reset.bat +++ b/reset.bat @@ -183,7 +183,12 @@ GOTO :EOF :: Function to uninstall an Android app :uninstallAndroidApp ECHO Attempting to uninstall android app %~1 - CALL :runCmd "adb uninstall %~1 | VER > NUL" + FOR /F "delims=" %%i in ('adb devices ^| find /v /c ""') DO SET deviceCount=%%i + IF %deviceCount% GTR 2 ( + CALL :runCmd "adb uninstall %~1 | VER > NUL" + ) ELSE ( + ECHO No android devices detected, skipping uninstallation + ) GOTO :EOF :: Function to run commands From 4cd0f6dfa2351ce93e523800e210fe35e2929f55 Mon Sep 17 00:00:00 2001 From: Jonahss Date: Mon, 3 Mar 2014 16:24:31 -0800 Subject: [PATCH 3/3] edited windows installation instructions --- docs/running-on-windows.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/running-on-windows.md b/docs/running-on-windows.md index 4fb442cec10..47e0d4ce8f9 100644 --- a/docs/running-on-windows.md +++ b/docs/running-on-windows.md @@ -13,8 +13,9 @@ To get started: 2. Install the [Android SDK](http://developer.android.com/sdk/index.html). You will need to run the 'android' tool (included in the SDK) and make sure you have an API Level 17 or greater API installed. Set `ANDROID_HOME` to be your Android SDK path and add the tools and platform-tools folders to your PATH variable. 3. Install the Java JDK and set `JAVA_HOME` to your JDK folder. 4. Install [Apache Ant](http://ant.apache.org/bindownload.cgi) or use the one that comes with the Android Windows SDK in the eclipse\plugins folder. Be sure to add the folder containing ant to your PATH variable. -5. Install [Apache Maven](http://maven.apache.org/download.cgi) and set the M2HOME and M2 environment variables. Add the M2 environment variable to your PATH variable. +5. Install [Apache Maven](http://maven.apache.org/download.cgi) and set the M2HOME and M2 environment variables. Set M2HOME to the directory maven is installed in, and set M2 to %M2HOME\bin. Add the path you used for M2 to your PATH. 6. Install [Git](http://git-scm.com/download/win) Be sure to install Git for windows to run in the regular command prompt. +7. Instal [cURL](http://curl.haxx.se/download.html) Now that you've downloaded everything, run: