@echo off
setlocal
+: 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 (
+ set GIT_BRANCH=master
+)
+
if "%1"=="/?" (
goto usage
) else if "%1"=="" (
- set _bootimage_version=latest
+ set _bootimage_version=%GIT_BRANCH%
) else if "%1"=="latest" (
- set _bootimage_version=latest
+ set _bootimage_version=%GIT_BRANCH%
) else if "%1"=="update" (
- set _bootimage_version=latest
+ set _bootimage_version=%GIT_BRANCH%
) else if "%1"=="clean" (
set _bootimage_version=clean
) else goto usage
) else goto nocl
)
-: Fun syntax
-for /f %%x in ('git describe --all') do set GIT_DESCRIBE=%%x
-for /f %%y in ('git rev-parse HEAD') do set GIT_ID=%%y
-
-set git_label=%GIT_DESCRIBE%-%GIT_ID%
-set version=0.98
-
-if %_bootimage_version%==clean (
- set _git_branch=clean-windows-%_target%
- set _bootimage_path=clean/windows-%_target%
-) else (
- set _git_branch=master
- set _bootimage_path=latest
-)
-
echo Deleting staging images from temp/...
del temp\staging.*.image
-echo Updating working copy from %_git_branch%...
-call git pull git://factorcode.org/git/factor.git %_git_branch%
+echo Updating working copy from %GIT_BRANCH%...
+call git pull https://github.com/factor/factor %GIT_BRANCH%
if errorlevel 1 goto fail
echo Building vm...
nmake /nologo /f Nmakefile clean
if errorlevel 1 goto fail
+
nmake /nologo /f Nmakefile %_target%
if errorlevel 1 goto fail
echo Fetching %_bootimage_version% boot image...
-cscript /nologo misc\http-get.vbs http://downloads.factorcode.org/images/%_bootimage_path%/%_bootimage% %_bootimage%
+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%
if errorlevel 1 goto fail
echo Bootstrapping...
goto :EOF
:usage
-echo Usage: build.cmd [latest/clean]
+echo Usage: build.cmd
echo Updates the working copy, cleans and builds the vm using nmake,
echo fetches a boot image, and bootstraps factor.
-echo If latest is specified, then the working copy is updated to the
-echo upstream "master" branch and the boot image corresponding to the
-echo most recent factor build is downloaded. This is the default.
-echo If clean is specified, then the working copy is updated to the
-echo upstream "clean-windows-*" branch corresponding to the current
-echo platform and the corresponding boot image is downloaded.
+echo The branch that bootstraps is the one that is checked out locally.
goto :EOF