@echo off
setlocal
+goto start
+
+:download
+rem branch url filename
+echo Fetching %1 boot image from %2
+cscript /nologo misc\http-get.vbs %2 %3
+exit /b
+
+:start
: Check which branch we are on, or just assume master if we are not in a git repository
for /f %%z in ('git rev-parse --abbrev-ref HEAD') do set GIT_BRANCH=%%z
if not defined GIT_BRANCH (
) else if "%1"=="" (
set _git_pull=1
set _compile_vm=1
- set _bootimage=download
+ set _bootimage_type=download
set _bootstrap_factor=1
) else if "%1"=="latest" (
set _git_pull=1
set _compile_vm=1
- set _bootimage=download
+ set _bootimage_type=download
set _bootstrap_factor=1
) else if "%1"=="update" (
set _git_pull=1
set _compile_vm=1
- set _bootimage=download
+ set _bootimage_type=download
set _bootstrap_factor=1
) else if "%1"=="compile" (
set _git_pull=0
set _compile_vm=1
- set _bootimage=current
+ set _bootimage_type=current
set _bootstrap_factor=0
) else if "%1"=="self-bootstrap" (
set _git_pull=1
set _compile_vm=0
- set _bootimage="make"
+ set _bootimage_type=make
set _bootstrap_factor=1
) else if "%1"=="bootstrap" (
set _git_pull=0
set _compile_vm=0
- set _bootimage=current
+ set _bootimage_type=current
set _bootstrap_factor=1
) else if "%1"=="net-bootstrap" (
set _git_pull=0
set _compile_vm=1
- set _bootimage=download
+ set _bootimage_type=download
set _bootstrap_factor=1
+) else if "%1"=="update-boot-image" (
+ set _git_pull=0
+ set _compile_vm=0
+ set _bootimage_type=download
+ set _bootstrap_factor=0
) else goto usage
if not exist Nmakefile goto wrongdir
if errorlevel 1 goto fail
)
-if "%_bootimage%"=="download" (
- echo Fetching %GIT_BRANCH% boot image...
- set boot_image_url=http://downloads.factorcode.org/images/%GIT_BRANCH%/%_bootimage% %_bootimage%
- echo URL: %boot_image_url%
- cscript /nologo misc\http-get.vbs %boot_image_url% %_bootimage%
+set _bootimage_url=https://downloads.factorcode.org/images/%GIT_BRANCH%/%_bootimage%
+if "%_bootimage_type%"=="download" (
+ call :download %GIT_BRANCH% %_bootimage_url% %_bootimage%
+ if errorlevel 1 (
+ echo boot image for branch %GIT_BRANCH% is not on server, trying master instead
+ call :download master https://downloads.factorcode.org/images/master/%_bootimage% %_bootimage%
+ )
if errorlevel 1 goto fail
-) else if "%_bootimage%"=="make" (
+) else if "%_bootimage_type%"=="make" (
echo Making boot image...
.\factor.com -run=bootstrap.image %_bootimage%
if errorlevel 1 goto fail
echo self-bootstrap - git pull, make a boot image, bootstrap
echo bootstrap - existing boot image, bootstrap
echo net-bootstrap - recompile vm, download a boot image, bootstrap
+echo update-boot-image - get the boot image for the current branch
goto :EOF