From f94dcb15ee1e182eb0e81abb7952478a0c82fa83 Mon Sep 17 00:00:00 2001 From: Dax Games Date: Sat, 12 Nov 2016 17:43:24 -0600 Subject: [PATCH 1/8] fixed cmtool assumption x64 chef-client exists --- script/cmtool.bat | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/script/cmtool.bat b/script/cmtool.bat index 222c1d8f..2b0b2740 100644 --- a/script/cmtool.bat +++ b/script/cmtool.bat @@ -2,6 +2,8 @@ @for %%i in (a:\_packer_config*.cmd) do @call "%%~i" @if defined PACKER_DEBUG (@echo on) else (@echo off) +if not defined TEMP set TEMP=%USERPROFILE%\AppData\Local\Temp + if not defined CM echo ==^> ERROR: The "CM" variable was not found in the environment & goto exit1 if "%CM%" == "nocm" goto nocm @@ -23,13 +25,23 @@ goto exit1 if not defined CHEF_URL if "%CM_VERSION%" == "latest" set CM_VERSION=12.9.38-1 -if not defined CHEF_URL set CHEF_64_URL=https://packages.chef.io/stable/windows/2008r2/chef-client-%CM_VERSION%-x64.msi +for /f "tokens=1,2,3 delims=." %%a in ('echo %CM_VERSION%') do ( + set CM_MAJOR_VER=%%a + set CM_MINOR_VER=%%b + set CM_INC_VER=%%c +) + if not defined CHEF_URL set CHEF_32_URL=https://packages.chef.io/stable/windows/2008r2/chef-client-%CM_VERSION%-x86.msi +if %CM_MAJOR_VER% GEQ 12 ( + if %CM_MINOR_VER% GEQ 7 ( + if not defined CHEF_URL set CHEF_64_URL=https://packages.chef.io/stable/windows/2008r2/chef-client-%CM_VERSION%-x64.msi + ) +) -if defined ProgramFiles(x86) ( - SET CHEF_URL=%CHEF_64_URL% +if defined CHEF_64_URL if defined ProgramFiles(x86) ( + SET CHEF_URL=!CHEF_64_URL! ) else ( - SET CHEF_URL=%CHEF_32_URL% + SET CHEF_URL=!CHEF_32_URL! ) for %%i in ("%CHEF_URL%") do set CHEF_MSI=%%~nxi @@ -198,4 +210,3 @@ echo ==^> Building box without a configuration management tool @echo ==^> Script exiting with errorlevel %ERRORLEVEL% @exit /b %ERRORLEVEL% - From 2851ef80bdf5a09145a4d914c203fb22dafe810d Mon Sep 17 00:00:00 2001 From: Dax Games Date: Sun, 11 Dec 2016 08:07:19 -0600 Subject: [PATCH 2/8] use chefs omnitruck api to get chef and chefdk download url --- script/cmtool.bat | 93 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 75 insertions(+), 18 deletions(-) diff --git a/script/cmtool.bat b/script/cmtool.bat index 2b0b2740..73b38726 100644 --- a/script/cmtool.bat +++ b/script/cmtool.bat @@ -2,6 +2,7 @@ @for %%i in (a:\_packer_config*.cmd) do @call "%%~i" @if defined PACKER_DEBUG (@echo on) else (@echo off) + if not defined TEMP set TEMP=%USERPROFILE%\AppData\Local\Temp if not defined CM echo ==^> ERROR: The "CM" variable was not found in the environment & goto exit1 @@ -23,25 +24,47 @@ goto exit1 :chef :::::::::::: -if not defined CHEF_URL if "%CM_VERSION%" == "latest" set CM_VERSION=12.9.38-1 +if not defined CHEF_URL if "%CM_VERSION%" == "latest" set CM_VERSION=12.16.42-1 + +:: srtrip -1 if %CM_VERSION% ends in -1 +set CM_VERSION=%CM_VERSION:-1=% + +set "omnitruck_x86_url=https://omnitruck.chef.io/stable/chef/metadata?p=windows&pv=2008r2&m=x86&v=%CM_VERSION%" +if defined http_proxy ( + powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('%omnitruck_x86_url%', '%temp%\omnitruck_x86.txt')" >nul +) else ( + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('%omnitruck_x86_url%', '%temp%\omnitruck_x86.txt')" >nul +) -for /f "tokens=1,2,3 delims=." %%a in ('echo %CM_VERSION%') do ( - set CM_MAJOR_VER=%%a - set CM_MINOR_VER=%%b - set CM_INC_VER=%%c +if not exist "%temp%\omnitruck_x86.txt" ( + echo Could not get chef-client %CM_VERSION% x86 download url... +) else ( + for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x86.txt"`) do ( + if not defined CHEF_URL set CHEF_32_URL=%%a + ) ) -if not defined CHEF_URL set CHEF_32_URL=https://packages.chef.io/stable/windows/2008r2/chef-client-%CM_VERSION%-x86.msi -if %CM_MAJOR_VER% GEQ 12 ( - if %CM_MINOR_VER% GEQ 7 ( - if not defined CHEF_URL set CHEF_64_URL=https://packages.chef.io/stable/windows/2008r2/chef-client-%CM_VERSION%-x64.msi +if not defined CHEF_URL if defined ProgramFiles(x86) ( + set "omnitruck_x64_url=https://omnitruck.chef.io/stable/chef/metadata?p=windows&pv=2008r2&m=x64&v=%CM_VERSION%" + if defined http_proxy ( + powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + ) else ( + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + ) + + if not exist "%temp%\omnitruck_x64.txt" ( + echo Could not get chef-client %CM_VERSION% x64 download url... + ) else ( + for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x64.txt"`) do ( + if not defined CHEF_URL set CHEF_64_URL=%%a + ) ) ) -if defined CHEF_64_URL if defined ProgramFiles(x86) ( - SET CHEF_URL=!CHEF_64_URL! +if defined CHEF_64_URL ( + SET CHEF_URL=%CHEF_64_URL% ) else ( - SET CHEF_URL=!CHEF_32_URL! + SET CHEF_URL=%CHEF_32_URL% ) for %%i in ("%CHEF_URL%") do set CHEF_MSI=%%~nxi @@ -60,6 +83,8 @@ if exist "%SystemRoot%\_download.cmd" ( ) if not exist "%CHEF_PATH%" goto exit1 +exit + echo ==^> Installing Chef client %CM_VERSION% msiexec /qb /i "%CHEF_PATH%" /l*v "%CHEF_DIR%\chef.log" %CHEF_OPTIONS% @@ -72,14 +97,46 @@ goto exit0 :chefdk :::::::::::: -if not defined CHEFDK_URL if "%CM_VERSION%" == "latest" set CM_VERSION=0.13.21-1 -if not defined CHEFDK_URL set CHEFDK_64_URL=https://packages.chef.io/stable/windows/2008r2/chefdk-%CM_VERSION%-x86.msi -if not defined CHEFDK_URL set CHEFDK_32_URL=https://packages.chef.io/stable/windows/2008r2/chefdk-%CM_VERSION%-x86.msi +if not defined CHEFDK_URL if "%CM_VERSION%" == "latest" set CM_VERSION=1.0.3 -if defined ProgramFiles(x86) ( - SET CHEFDK_URL=%CHEFDK_64_URL% +:: srtrip -1 if %CM_VERSION% ends in -1 +set CM_VERSION=%CM_VERSION:-1=% + +set "omnitruck_x86_url=https://omnitruck.chef.io/stable/chefdk/metadata?p=windows&pv=2008r2&m=x86&v=%CM_VERSION%" +if defined http_proxy ( + powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('%omnitruck_x86_url%', '%temp%\omnitruck_x86.txt')" >nul +) else ( + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('%omnitruck_x86_url%', '%temp%\omnitruck_x86.txt')" >nul +) + +if not exist "%temp%\omnitruck_x86.txt" ( + echo Could not get chefdk %CM_VERSION% x86 download url... +) else ( + for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x86.txt"`) do ( + if not defined CHEFDK_URL set CHEFDK_32_URL=%%a + ) +) + +if not defined CHEFDK_URL if defined ProgramFiles(x86) ( + set "omnitruck_x64_url=https://omnitruck.chef.io/stable/chefdk/metadata?p=windows&pv=2008r2&m=x64&v=%CM_VERSION%" + if defined http_proxy ( + powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + ) else ( + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + ) + + if not exist "%temp%\omnitruck_x64.txt" ( + echo Could not get chefdk %CM_VERSION% x64 download url... + ) else ( + for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x64.txt"`) do ( + if not defined CHEFDK_URL set CHEFDK_64_URL=%%a + ) + ) +) +if defined CHEFDK_64_URL ( + SET CHEFDK_URL=%CHEFDK_64_URL% ) else ( - SET CHEFDK_URL=%CHEFDK_32_URL% + SET CHEFDK_URL=%CHEFDK_32_URL% ) for %%i in ("%CHEFDK_URL%") do set CHEFDK_MSI=%%~nxi From fc4ed835a0a2fe40dbc1cbbc97d710e5a68099ca Mon Sep 17 00:00:00 2001 From: Dax Games Date: Sun, 11 Dec 2016 08:11:00 -0600 Subject: [PATCH 3/8] update default chef and chefdk to latest stable versions --- script/cmtool.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/cmtool.bat b/script/cmtool.bat index 73b38726..964d79ed 100644 --- a/script/cmtool.bat +++ b/script/cmtool.bat @@ -24,7 +24,7 @@ goto exit1 :chef :::::::::::: -if not defined CHEF_URL if "%CM_VERSION%" == "latest" set CM_VERSION=12.16.42-1 +if not defined CHEF_URL if "%CM_VERSION%" == "latest" set CM_VERSION=12.16.42 :: srtrip -1 if %CM_VERSION% ends in -1 set CM_VERSION=%CM_VERSION:-1=% From 20b2153daa49e21c898edb86a86b7a06a7071281 Mon Sep 17 00:00:00 2001 From: Dax Games Date: Sun, 11 Dec 2016 08:18:00 -0600 Subject: [PATCH 4/8] exit with error if no valid chef or chefdk url --- script/cmtool.bat | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/script/cmtool.bat b/script/cmtool.bat index 964d79ed..ce63d9f7 100644 --- a/script/cmtool.bat +++ b/script/cmtool.bat @@ -2,7 +2,6 @@ @for %%i in (a:\_packer_config*.cmd) do @call "%%~i" @if defined PACKER_DEBUG (@echo on) else (@echo off) - if not defined TEMP set TEMP=%USERPROFILE%\AppData\Local\Temp if not defined CM echo ==^> ERROR: The "CM" variable was not found in the environment & goto exit1 @@ -63,10 +62,16 @@ if not defined CHEF_URL if defined ProgramFiles(x86) ( if defined CHEF_64_URL ( SET CHEF_URL=%CHEF_64_URL% -) else ( +) else if defined CHEF_32_URL ( SET CHEF_URL=%CHEF_32_URL% ) +if not defined CHEF_URL + echo Could not get Chef %CM_VERSION% download url... + goto exit1 +) + + for %%i in ("%CHEF_URL%") do set CHEF_MSI=%%~nxi set CHEF_DIR=%TEMP%\chef set CHEF_PATH=%CHEF_DIR%\%CHEF_MSI% @@ -83,8 +88,6 @@ if exist "%SystemRoot%\_download.cmd" ( ) if not exist "%CHEF_PATH%" goto exit1 -exit - echo ==^> Installing Chef client %CM_VERSION% msiexec /qb /i "%CHEF_PATH%" /l*v "%CHEF_DIR%\chef.log" %CHEF_OPTIONS% @@ -133,12 +136,18 @@ if not defined CHEFDK_URL if defined ProgramFiles(x86) ( ) ) ) + if defined CHEFDK_64_URL ( SET CHEFDK_URL=%CHEFDK_64_URL% -) else ( +) else if defined CHEFDK_32_URL ( SET CHEFDK_URL=%CHEFDK_32_URL% ) +if not defined CHEFDK_URL + echo Could not get chefdk %CM_VERSION% download url... + goto exit1 +) + for %%i in ("%CHEFDK_URL%") do set CHEFDK_MSI=%%~nxi set CHEFDK_DIR=%TEMP%\chefdk set CHEFDK_PATH=%CHEFDK_DIR%\%CHEFDK_MSI% From 103891c70b6284b1989afb81f30a6fc35680b292 Mon Sep 17 00:00:00 2001 From: Dax Games Date: Sun, 11 Dec 2016 08:23:28 -0600 Subject: [PATCH 5/8] exit with error if no valid chef or chefdk url --- script/cmtool.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/cmtool.bat b/script/cmtool.bat index ce63d9f7..5ffc660f 100644 --- a/script/cmtool.bat +++ b/script/cmtool.bat @@ -66,7 +66,7 @@ if defined CHEF_64_URL ( SET CHEF_URL=%CHEF_32_URL% ) -if not defined CHEF_URL +if not defined CHEF_URL ( echo Could not get Chef %CM_VERSION% download url... goto exit1 ) @@ -143,7 +143,7 @@ if defined CHEFDK_64_URL ( SET CHEFDK_URL=%CHEFDK_32_URL% ) -if not defined CHEFDK_URL +if not defined CHEFDK_URL ( echo Could not get chefdk %CM_VERSION% download url... goto exit1 ) From 63e2890f7a11847bc2288a3512667dea8ecbb3d1 Mon Sep 17 00:00:00 2001 From: Dax Games Date: Sun, 11 Dec 2016 09:13:18 -0600 Subject: [PATCH 6/8] if chef/chefdk url is defined don't use omnitruck --- script/cmtool.bat | 133 ++++++++++++++++++++++++---------------------- 1 file changed, 68 insertions(+), 65 deletions(-) diff --git a/script/cmtool.bat b/script/cmtool.bat index 5ffc660f..f6d65379 100644 --- a/script/cmtool.bat +++ b/script/cmtool.bat @@ -28,49 +28,50 @@ if not defined CHEF_URL if "%CM_VERSION%" == "latest" set CM_VERSION=12.16.42 :: srtrip -1 if %CM_VERSION% ends in -1 set CM_VERSION=%CM_VERSION:-1=% -set "omnitruck_x86_url=https://omnitruck.chef.io/stable/chef/metadata?p=windows&pv=2008r2&m=x86&v=%CM_VERSION%" -if defined http_proxy ( - powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('%omnitruck_x86_url%', '%temp%\omnitruck_x86.txt')" >nul -) else ( - powershell -Command "(New-Object System.Net.WebClient).DownloadFile('%omnitruck_x86_url%', '%temp%\omnitruck_x86.txt')" >nul -) - -if not exist "%temp%\omnitruck_x86.txt" ( - echo Could not get chef-client %CM_VERSION% x86 download url... -) else ( - for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x86.txt"`) do ( - if not defined CHEF_URL set CHEF_32_URL=%%a - ) -) - -if not defined CHEF_URL if defined ProgramFiles(x86) ( - set "omnitruck_x64_url=https://omnitruck.chef.io/stable/chef/metadata?p=windows&pv=2008r2&m=x64&v=%CM_VERSION%" +if not defined CHEF_URL ( + set "omnitruck_x86_url=https://omnitruck.chef.io/stable/chef/metadata?p=windows&pv=2008r2&m=x86&v=%CM_VERSION%" if defined http_proxy ( - powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x86_url!', '%temp%\omnitruck_x86.txt')" >nul ) else ( - powershell -Command "(New-Object System.Net.WebClient).DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('!omnitruck_x86_url!', '%temp%\omnitruck_x86.txt')" >nul ) - if not exist "%temp%\omnitruck_x64.txt" ( - echo Could not get chef-client %CM_VERSION% x64 download url... + if not exist "%temp%\omnitruck_x86.txt" ( + echo Could not get chef-client %CM_VERSION% x86 download url... ) else ( - for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x64.txt"`) do ( - if not defined CHEF_URL set CHEF_64_URL=%%a + for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x86.txt"`) do ( + set CHEF_32_URL=%%a ) ) -) -if defined CHEF_64_URL ( - SET CHEF_URL=%CHEF_64_URL% -) else if defined CHEF_32_URL ( - SET CHEF_URL=%CHEF_32_URL% -) + if not defined CHEF_URL if defined ProgramFiles(x86) ( + set "omnitruck_x64_url=https://omnitruck.chef.io/stable/chef/metadata?p=windows&pv=2008r2&m=x64&v=%CM_VERSION%" + if defined http_proxy ( + powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + ) else ( + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + ) -if not defined CHEF_URL ( - echo Could not get Chef %CM_VERSION% download url... - goto exit1 -) + if not exist "%temp%\omnitruck_x64.txt" ( + echo Could not get chef-client %CM_VERSION% x64 download url... + ) else ( + for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x64.txt"`) do ( + set CHEF_64_URL=%%a + ) + ) + ) + + if defined CHEF_64_URL ( + SET CHEF_URL=%CHEF_64_URL% + ) else if defined CHEF_32_URL ( + SET CHEF_URL=%CHEF_32_URL% + ) + if not defined CHEF_URL ( + echo Could not get Chef %CM_VERSION% download url... + goto exit1 + ) +) for %%i in ("%CHEF_URL%") do set CHEF_MSI=%%~nxi set CHEF_DIR=%TEMP%\chef @@ -105,47 +106,49 @@ if not defined CHEFDK_URL if "%CM_VERSION%" == "latest" set CM_VERSION=1.0.3 :: srtrip -1 if %CM_VERSION% ends in -1 set CM_VERSION=%CM_VERSION:-1=% -set "omnitruck_x86_url=https://omnitruck.chef.io/stable/chefdk/metadata?p=windows&pv=2008r2&m=x86&v=%CM_VERSION%" -if defined http_proxy ( - powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('%omnitruck_x86_url%', '%temp%\omnitruck_x86.txt')" >nul -) else ( - powershell -Command "(New-Object System.Net.WebClient).DownloadFile('%omnitruck_x86_url%', '%temp%\omnitruck_x86.txt')" >nul -) - -if not exist "%temp%\omnitruck_x86.txt" ( - echo Could not get chefdk %CM_VERSION% x86 download url... -) else ( - for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x86.txt"`) do ( - if not defined CHEFDK_URL set CHEFDK_32_URL=%%a - ) -) - -if not defined CHEFDK_URL if defined ProgramFiles(x86) ( - set "omnitruck_x64_url=https://omnitruck.chef.io/stable/chefdk/metadata?p=windows&pv=2008r2&m=x64&v=%CM_VERSION%" +if not defined CHEFDK_URL ( + set "omnitruck_x86_url=https://omnitruck.chef.io/stable/chefdk/metadata?p=windows&pv=2008r2&m=x86&v=%CM_VERSION%" if defined http_proxy ( - powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x86_url!', '%temp%\omnitruck_x86.txt')" >nul ) else ( - powershell -Command "(New-Object System.Net.WebClient).DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('!omnitruck_x86_url!', '%temp%\omnitruck_x86.txt')" >nul ) - if not exist "%temp%\omnitruck_x64.txt" ( - echo Could not get chefdk %CM_VERSION% x64 download url... + if not exist "%temp%\omnitruck_x86.txt" ( + echo Could not get chefdk %CM_VERSION% x86 download url... ) else ( - for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x64.txt"`) do ( - if not defined CHEFDK_URL set CHEFDK_64_URL=%%a + for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x86.txt"`) do ( + set CHEFDK_32_URL=%%a + ) + ) + + if defined ProgramFiles(x86) ( + set "omnitruck_x64_url=https://omnitruck.chef.io/stable/chefdk/metadata?p=windows&pv=2008r2&m=x64&v=%CM_VERSION%" + if defined http_proxy ( + powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + ) else ( + powershell -Command "(New-Object System.Net.WebClient).DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul + ) + + if not exist "%temp%\omnitruck_x64.txt" ( + echo Could not get chefdk %CM_VERSION% x64 download url... + ) else ( + for /f "tokens=2 usebackq" %%a in (`findstr "url" "%temp%\omnitruck_x64.txt"`) do ( + set CHEFDK_64_URL=%%a + ) ) ) -) -if defined CHEFDK_64_URL ( - SET CHEFDK_URL=%CHEFDK_64_URL% -) else if defined CHEFDK_32_URL ( - SET CHEFDK_URL=%CHEFDK_32_URL% -) + if defined CHEFDK_64_URL ( + SET CHEFDK_URL=%CHEFDK_64_URL% + ) else if defined CHEFDK_32_URL ( + SET CHEFDK_URL=%CHEFDK_32_URL% + ) -if not defined CHEFDK_URL ( - echo Could not get chefdk %CM_VERSION% download url... - goto exit1 + if not defined CHEFDK_URL ( + echo Could not get chefdk %CM_VERSION% download url... + goto exit1 + ) ) for %%i in ("%CHEFDK_URL%") do set CHEFDK_MSI=%%~nxi From 97be7b770c3f145563c65c5805e3e01449c4205d Mon Sep 17 00:00:00 2001 From: Dax Games Date: Sun, 11 Dec 2016 10:49:25 -0600 Subject: [PATCH 7/8] fixed errors in batch --- script/cmtool.bat | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/script/cmtool.bat b/script/cmtool.bat index f6d65379..e2670488 100644 --- a/script/cmtool.bat +++ b/script/cmtool.bat @@ -29,6 +29,7 @@ if not defined CHEF_URL if "%CM_VERSION%" == "latest" set CM_VERSION=12.16.42 set CM_VERSION=%CM_VERSION:-1=% if not defined CHEF_URL ( + echo ==^> Getting Chef %CM_VERSION% download URL set "omnitruck_x86_url=https://omnitruck.chef.io/stable/chef/metadata?p=windows&pv=2008r2&m=x86&v=%CM_VERSION%" if defined http_proxy ( powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x86_url!', '%temp%\omnitruck_x86.txt')" >nul @@ -44,7 +45,7 @@ if not defined CHEF_URL ( ) ) - if not defined CHEF_URL if defined ProgramFiles(x86) ( + if defined ProgramFiles^(x86^) ( set "omnitruck_x64_url=https://omnitruck.chef.io/stable/chef/metadata?p=windows&pv=2008r2&m=x64&v=%CM_VERSION%" if defined http_proxy ( powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul @@ -62,9 +63,9 @@ if not defined CHEF_URL ( ) if defined CHEF_64_URL ( - SET CHEF_URL=%CHEF_64_URL% + SET CHEF_URL=!CHEF_64_URL! ) else if defined CHEF_32_URL ( - SET CHEF_URL=%CHEF_32_URL% + SET CHEF_URL=!CHEF_32_URL! ) if not defined CHEF_URL ( @@ -107,6 +108,7 @@ if not defined CHEFDK_URL if "%CM_VERSION%" == "latest" set CM_VERSION=1.0.3 set CM_VERSION=%CM_VERSION:-1=% if not defined CHEFDK_URL ( + echo ==^> Getting ChefDK %CM_VERSION% download URL set "omnitruck_x86_url=https://omnitruck.chef.io/stable/chefdk/metadata?p=windows&pv=2008r2&m=x86&v=%CM_VERSION%" if defined http_proxy ( powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x86_url!', '%temp%\omnitruck_x86.txt')" >nul @@ -122,7 +124,7 @@ if not defined CHEFDK_URL ( ) ) - if defined ProgramFiles(x86) ( + if defined ProgramFiles^(x86^) ( set "omnitruck_x64_url=https://omnitruck.chef.io/stable/chefdk/metadata?p=windows&pv=2008r2&m=x64&v=%CM_VERSION%" if defined http_proxy ( powershell -Command "$wc = (New-Object System.Net.WebClient); $wc.proxy = (new-object System.Net.WebProxy('%http_proxy%')) ; $wc.proxy.BypassList = (('%no_proxy%').split(',')) ; $wc.DownloadFile('!omnitruck_x64_url!', '%temp%\omnitruck_x64.txt')" >nul @@ -140,9 +142,9 @@ if not defined CHEFDK_URL ( ) if defined CHEFDK_64_URL ( - SET CHEFDK_URL=%CHEFDK_64_URL% + SET CHEFDK_URL=!CHEFDK_64_URL! ) else if defined CHEFDK_32_URL ( - SET CHEFDK_URL=%CHEFDK_32_URL% + SET CHEFDK_URL=!CHEFDK_32_URL! ) if not defined CHEFDK_URL ( From de27567f13b24d0eb6e724384d12611031a4da2e Mon Sep 17 00:00:00 2001 From: Dax Games Date: Wed, 14 Dec 2016 10:44:53 -0600 Subject: [PATCH 8/8] show chef architecture in install echo --- script/cmtool.bat | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/script/cmtool.bat b/script/cmtool.bat index e2670488..2d4cf647 100644 --- a/script/cmtool.bat +++ b/script/cmtool.bat @@ -64,8 +64,10 @@ if not defined CHEF_URL ( if defined CHEF_64_URL ( SET CHEF_URL=!CHEF_64_URL! + set CHEF_ARCH=x86_64 ) else if defined CHEF_32_URL ( SET CHEF_URL=!CHEF_32_URL! + set CHEF_ARCH=x86 ) if not defined CHEF_URL ( @@ -90,7 +92,7 @@ if exist "%SystemRoot%\_download.cmd" ( ) if not exist "%CHEF_PATH%" goto exit1 -echo ==^> Installing Chef client %CM_VERSION% +echo ==^> Installing Chef client %CM_VERSION% %CHEF_ARCH% msiexec /qb /i "%CHEF_PATH%" /l*v "%CHEF_DIR%\chef.log" %CHEF_OPTIONS% @if errorlevel 1 echo ==^> WARNING: Error %ERRORLEVEL% was returned by: msiexec /qb /i "%CHEF_PATH%" /l*v "%CHEF_DIR%\chef.log" %CHEF_OPTIONS% @@ -143,8 +145,10 @@ if not defined CHEFDK_URL ( if defined CHEFDK_64_URL ( SET CHEFDK_URL=!CHEFDK_64_URL! + SET CHEFDK_ARCH=x86_64 ) else if defined CHEFDK_32_URL ( SET CHEFDK_URL=!CHEFDK_32_URL! + SET CHEFDK_ARCH=x86 ) if not defined CHEFDK_URL ( @@ -170,7 +174,7 @@ if exist "%SystemRoot%\_download.cmd" ( ) if not exist "%CHEFDK_PATH%" goto exit1 -echo ==^> Installing Chef Development Kit %CM_VERSION% +echo ==^> Installing Chef Development Kit %CM_VERSION% %CHEFDK_ARCH% msiexec /qb /i "%CHEFDK_PATH%" /l*v "%CHEFDK_DIR%\chef.log" %CHEFDK_OPTIONS% @if errorlevel 1 echo ==^> WARNING: Error %ERRORLEVEL% was returned by: msiexec /qb /i "%CHEFDK_PATH%" /l*v "%CHEFDK_DIR%\chef.log" %CHEFDK_OPTIONS%