aboutsummaryrefslogtreecommitdiffstats
path: root/tools/deploy.bat
blob: 6e034c03083613c4d71ae54a4eaf3b857b3a03da (plain) (blame)
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
@ECHO OFF
setlocal enableDelayedExpansion

:: the deploy target folder
SET FOLDER=deploy

:: the deploy target suffix, i.e. <projectName>[suffix]
SET SUFFIX= - %date% - %time%

:: remove spaces, convert / : to _, convert . to ~
set SUFFIX=%SUFFIX: =%
set SUFFIX=%SUFFIX:/=-%
set SUFFIX=%SUFFIX::=-%
set SUFFIX=%SUFFIX:.=~%

:: enyo location
SET ENYO=..\enyo

:: the grandparent folder for this batch file
SET SOURCE=%~dp0..\

:: extract project folder name
FOR /D %%I IN ("%SOURCE%\.") DO SET NAME=%%~nxI

:: prepare target name
SET DEPLOY=%NAME%%SUFFIX%

:: make sure (deploy) FOLDER exists
SET TARGETROOT="%SOURCE%%FOLDER%"
IF NOT EXIST %TARGETROOT% mkdir %TARGETROOT%

:: pull path for this deploy
IF NOT DEFINED TARGET SET TARGET="%SOURCE%%FOLDER%\%DEPLOY%"

:: quotes around path that might have spaces
SET SOURCE="%SOURCE%"

IF NOT EXIST %TARGET% GOTO deploy

ECHO "%TARGET%" folder already exists, please rename or remove it and try again.
ECHO.

PAUSE
GOTO end

:DEPLOY

SET USAGE="Usage: deploy.bat [-h] [-c] [-o output_dir]"

:: Parse options
:: Thanks to http://stackoverflow.com/questions/3973824/windows-bat-file-optional-argument-parsing
set "options=-o:"" -h: -c:"
for %%O in (%options%) do for /f "tokens=1,* delims=:" %%A in ("%%O") do set "%%A=%%~B"
:parseloop
if not "%~1"=="" (
  set "test=!options:*%~1:=! "
  if "!test!"=="!options! " (
  	echo %USAGE%
  	goto end
  ) else if "!test:~0,1!"==" " (
    set "%~1=1"
  ) else (
    set "%~1=%~2"
    shift
  )
  shift
  goto :parseloop
)

:: Handle options
IF DEFINED -h (
	ECHO %USAGE%
	GOTO end	
)
IF DEFINED -c (
	SET NO_LESS="-no-less"
) else (
	SET NO_LESS=""
)
IF DEFINED -o (
	SET TARGET=%-o%
)
IF DEFINED -o (
	RMDIR /S /Q %TARGET%
)

ECHO This script can create a deployment in %TARGET%
ECHO.


ECHO ==========
ECHO build step
ECHO ==========
ECHO.

REM build enyo
CALL %ENYO%\minify\minify.bat

REM build app
CALL %ENYO%\tools\minify.bat package.js -output ..\build\app

ECHO =========
ECHO copy step
ECHO =========
ECHO.

:: make deploy folder
MKDIR %TARGET%

:: copy root folder files
COPY %SOURCE%index.html %TARGET% >NUL
COPY %SOURCE%icon.png %TARGET% >NUL

:: copy assets and build
XCOPY %SOURCE%assets\*.* %TARGET%\assets\ /Q /E >NUL
XCOPY %SOURCE%build\*.* %TARGET%\build\ /Q /E >NUL

:: copy library items
MKDIR %TARGET%\lib

FOR /D %%G in (%SOURCE%lib\*) DO IF EXIST "%%G\deploy.bat" ECHO deploying "%%~nxG"
FOR /D %%G in (%SOURCE%lib\*) DO IF EXIST "%%G\deploy.bat" CALL "%%G\deploy.bat" %TARGET%\lib\"%%~nxG"

FOR /D %%G in (%SOURCE%lib\*) DO IF NOT EXIST "%%G\deploy.bat" ECHO copying "%%~nxG"
FOR /D %%G in (%SOURCE%lib\*) DO IF NOT EXIST "%%G\deploy.bat" XCOPY "%%G" %TARGET%\lib\"%%~nxG"\ /Q /E >NUL

ECHO.

PAUSE
:end