forked from troter/xyzzy
/
dist.bat
51 lines (41 loc) · 1.12 KB
/
dist.bat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
@echo off
setlocal
if "%1"=="" goto usage
set TAG=%1
set APPNAME=xyzzy
set ARCHIVE=%APPNAME%-%TAG%.zip
set BASEDIR=%~dp0
set GIT_REPO=%BASEDIR%
set DISTROOT=%BASEDIR%\_dist
set DISTDIR=%BASEDIR%\_dist\%APPNAME%
set BUILDDIR=%BASEDIR%\_dist\build
call git tag %TAG% -a -m "%APPNAME% %TAG% released!" || exit /b 1
call git tag
cd %BASEDIR%
rd /S /Q %DISTROOT% 2> nul
mkdir %DISTROOT%
mkdir %BUILDDIR%
mkdir %DISTDIR%
mkdir %DISTDIR%\lisp
mkdir %DISTDIR%\etc
mkdir %DISTDIR%\docs
mkdir %DISTDIR%\reference
mkdir %DISTDIR%\site-lisp
cd %BUILDDIR%
call git clone %GIT_REPO% %BUILDDIR% || exit /b 1
call git checkout %TAG% || git tag; exit /b 1
call build.bat || exit /b 1
call bytecompile.bat || exit /b 1
xcopy /F /G /H /R /K /Y *.exe %DISTDIR%
xcopy /F /G /H /R /K /Y LICENSE %DISTDIR%\docs\
xcopy /F /G /H /R /K /Y LEGAL.md %DISTDIR%\docs\
xcopy /F /G /H /R /K /Y /S /E lisp %DISTDIR%\lisp\
xcopy /F /G /H /R /K /Y /S /E etc %DISTDIR%\etc\
xcopy /F /G /H /R /K /Y /S /E docs %DISTDIR%\docs\
xcopy /F /G /H /R /K /Y /S /E reference %DISTDIR%\reference\
cd %DISTROOT%
7za a %ARCHIVE% %DISTDIR%
goto :eof
:usage
echo Usage: %0 TAG
goto :eof