summaryrefslogtreecommitdiff
path: root/install.bat
diff options
context:
space:
mode:
authorhisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c>2009-04-01 17:11:57 +0000
committerhisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c>2009-04-01 17:11:57 +0000
commita88d6f2eeba2b3355c33fac6d736cf6086342f47 (patch)
tree03ebfa0ced0186e091609cf337e290580fab8c11 /install.bat
downloadluarocks-a88d6f2eeba2b3355c33fac6d736cf6086342f47.tar.gz
luarocks-a88d6f2eeba2b3355c33fac6d736cf6086342f47.tar.bz2
luarocks-a88d6f2eeba2b3355c33fac6d736cf6086342f47.zip
Import latest revision from CVS at luaforge.netv1.0v0.5.2v0.5.1v0.5v0.4.3v0.4.2v0.4.1v0.4v0.3.2v0.3.1v0.3v0.2v0.1
git-svn-id: http://luarocks.org/svn/luarocks/trunk@1 9ca3f7c1-7366-0410-b1a3-b5c78f85698c
Diffstat (limited to 'install.bat')
-rw-r--r--install.bat312
1 files changed, 312 insertions, 0 deletions
diff --git a/install.bat b/install.bat
new file mode 100644
index 00000000..141fe0f8
--- /dev/null
+++ b/install.bat
@@ -0,0 +1,312 @@
1@ECHO OFF
2
3REM Boy, it feels like 1994 all over again.
4
5SETLOCAL
6
7SET PREFIX=C:\LuaRocks
8SET VERSION=1.0
9SET SYSCONFDIR=C:\LuaRocks
10SET ROCKS_TREE=C:\LuaRocks
11SET SCRIPTS_DIR=
12SET FORCE=OFF
13SET INSTALL_LUA=OFF
14SET LUA_INTERPRETER=
15SET LUA_PREFIX=
16SET LUA_BINDIR=
17SET LUA_INCDIR=
18SET LUA_LIBDIR=
19SET FORCE_CONFIG=
20SET MKDIR=.\bin\mkdir -p
21
22REM ***********************************************************
23REM Option parser
24REM ***********************************************************
25
26:PARSE_LOOP
27IF [%1]==[] GOTO DONE_PARSING
28IF [%1]==[/?] (
29 ECHO Installs LuaRocks.
30 ECHO.
31 ECHO /P [dir] Where to install.
32 ECHO Default is %PREFIX%
33 ECHO /CONFIG [dir] Location where the config file should be installed.
34 ECHO Default is %SYSCONFDIR%
35 ECHO /TREE [dir] Root of the local tree of installed rocks.
36 ECHO Default is %ROCKS_TREE%
37 ECHO /SCRIPTS [dir] Where to install scripts installed by rocks.
38 ECHO Default is TREE/bin.
39 ECHO.
40 ECHO /L Install LuaRocks' own copy of Lua even if detected.
41 ECHO /LUA [dir] Location where Lua is installed - e.g. c:\lua\5.1\
42 ECHO /INC [dir] Location of Lua includes - e.g. c:\lua\5.1\include
43 ECHO /LIB [dir] Location of Lua libraries -e.g. c:\lua\5.1\lib
44 ECHO /BIN [dir] Location of Lua executables - e.g. c:\lua\5.1\bin
45 ECHO.
46 ECHO /FORCECONFIG Use a single config location. Do not use the
47 ECHO LUAROCKS_CONFIG variable or the user's home directory.
48 ECHO Useful to avoid conflicts when LuaRocks
49 ECHO is embedded within an application.
50 ECHO.
51 ECHO /F Remove installation directory if it already exists.
52 ECHO.
53 GOTO QUIT
54)
55IF /I [%1]==[/P] (
56 SET PREFIX=%2
57 SHIFT /1
58 SHIFT /1
59 GOTO PARSE_LOOP
60)
61IF /I [%1]==[/CONFIG] (
62 SET SYSCONFDIR=%2
63 SHIFT /1
64 SHIFT /1
65 GOTO PARSE_LOOP
66)
67IF /I [%1]==[/TREE] (
68 SET ROCKS_TREE=%2
69 SHIFT /1
70 SHIFT /1
71 GOTO PARSE_LOOP
72)
73IF /I [%1]==[/SCRIPTS] (
74 SET SCRIPTS_DIR=%2
75 SHIFT /1
76 SHIFT /1
77 GOTO PARSE_LOOP
78)
79IF /I [%1]==[/L] (
80 SET INSTALL_LUA=ON
81 SHIFT /1
82 GOTO PARSE_LOOP
83)
84IF /I [%1]==[/LUA] (
85 SET LUA_PREFIX=%2
86 SHIFT /1
87 SHIFT /1
88 GOTO PARSE_LOOP
89)
90IF /I [%1]==[/LIB] (
91 SET LUA_LIBDIR=%2
92 SHIFT /1
93 SHIFT /1
94 GOTO PARSE_LOOP
95)
96IF /I [%1]==[/INC] (
97 SET LUA_INCDIR=%2
98 SHIFT /1
99 SHIFT /1
100 GOTO PARSE_LOOP
101)
102IF /I [%1]==[/BIN] (
103 SET LUA_BINDIR=%2
104 SHIFT /1
105 SHIFT /1
106 GOTO PARSE_LOOP
107)
108IF /I [%1]==[/FORCECONFIG] (
109 SET FORCE_CONFIG=ON
110 SHIFT /1
111 GOTO PARSE_LOOP
112)
113IF /I [%1]==[/F] (
114 SET FORCE=ON
115 SHIFT /1
116 GOTO PARSE_LOOP
117)
118ECHO Unrecognized option: %1
119GOTO ERROR
120:DONE_PARSING
121
122SET FULL_PREFIX=%PREFIX%\%VERSION%
123
124SET BINDIR=%FULL_PREFIX%
125SET LIBDIR=%FULL_PREFIX%
126SET LUADIR=%FULL_PREFIX%\lua
127SET INCDIR=%FULL_PREFIX%\include
128
129REM ***********************************************************
130REM Detect Lua
131REM ***********************************************************
132
133IF [%INSTALL_LUA%]==[ON] GOTO USE_OWN_LUA
134
135FOR %%L IN (%LUA_PREFIX% c:\lua\5.1.2 c:\lua c:\kepler\1.1) DO (
136 SET CURR=%%L
137 IF EXIST "%%L" (
138 IF NOT [%LUA_BINDIR%]==[] (
139 IF EXIST %LUA_BINDIR%\lua5.1.exe (
140 SET LUA_INTERPRETER=%LUA_BINDIR%\lua5.1.exe
141 GOTO INTERPRETER_IS_SET
142 )
143 IF EXIST %LUA_BINDIR%\lua.exe (
144 SET LUA_INTERPRETER=%LUA_BINDIR%\lua.exe
145 GOTO INTERPRETER_IS_SET
146 )
147 ECHO Lua executable lua.exe or lua5.1.exe not found in %LUA_BINDIR%
148 GOTO ERROR
149 )
150 SET CURR=%%L
151 FOR %%E IN (\ \bin\) DO (
152 IF EXIST "%%L%%E\lua5.1.exe" (
153 SET LUA_INTERPRETER=%%L%%E\lua5.1.exe
154 SET LUA_BINDIR=%%L%%E
155 GOTO INTERPRETER_IS_SET
156 )
157 IF EXIST "%%L%%E\lua.exe" (
158 SET LUA_INTERPRETER=%%L%%E\lua.exe
159 SET LUA_BINDIR=%%L%%E
160 GOTO INTERPRETER_IS_SET
161 )
162 )
163 GOTO TRY_NEXT_LUA_DIR
164 :INTERPRETER_IS_SET
165 IF NOT "%LUA_LIBDIR%"=="" (
166 IF EXIST %LUA_LIBDIR%\lua5.1.lib GOTO LIBDIR_IS_SET
167 ECHO lua5.1.lib not found in %LUA_LIBDIR%
168 GOTO ERROR
169 )
170 FOR %%E IN (\ \lib\ \bin\) DO (
171 IF EXIST "%CURR%%%E\lua5.1.lib" (
172 SET LUA_LIBDIR=%CURR%%%E
173 GOTO LIBDIR_IS_SET
174 )
175 )
176 GOTO TRY_NEXT_LUA_DIR
177 :LIBDIR_IS_SET
178 IF NOT [%LUA_INCDIR%]==[] (
179 IF EXIST %LUA_INCDIR%\lua.h GOTO INCDIR_IS_SET
180 ECHO lua.h not found in %LUA_INCDIR%
181 GOTO ERROR
182 )
183 FOR %%E IN (\ \include\) DO (
184 IF EXIST "%CURR%%%E\lua.h" (
185 SET LUA_INCDIR=%CURR%%%E
186 GOTO INCDIR_IS_SET
187 )
188 )
189 GOTO TRY_NEXT_LUA_DIR
190 :INCDIR_IS_SET
191 %LUA_INTERPRETER% -v 2>NUL
192 IF NOT ERRORLEVEL 1 (
193 GOTO LUA_IS_SET
194 )
195 )
196:TRY_NEXT_LUA_DIR
197 REM wtf
198)
199ECHO Could not find Lua. Will install its own copy.
200ECHO See /? for options for specifying the location of Lua.
201:USE_OWN_LUA
202SET INSTALL_LUA=ON
203SET LUA_INTERPRETER=lua5.1
204SET LUA_BINDIR=%BINDIR%
205SET LUA_LIBDIR=%LIBDIR%
206SET LUA_INCDIR=%INCDIR%
207:LUA_IS_SET
208ECHO.
209ECHO Will configure LuaRocks with the following paths:
210ECHO Lua interpreter: %LUA_INTERPRETER%
211ECHO Lua binaries: %LUA_BINDIR%
212ECHO Lua libraries: %LUA_LIBDIR%
213ECHO Lua includes: %LUA_INCDIR%
214ECHO.
215
216REM ***********************************************************
217REM Install LuaRocks files
218REM ***********************************************************
219
220IF [%FORCE%]==[ON] (
221 ECHO Removing %FULL_PREFIX%...
222 RD /S /Q "%FULL_PREFIX%"
223)
224
225IF NOT EXIST "%FULL_PREFIX%" GOTO NOT_EXIST_PREFIX
226 ECHO %FULL_PREFIX% exists. Use /F to force removal and reinstallation.
227 GOTO ERROR
228:NOT_EXIST_PREFIX
229
230ECHO Installing LuaRocks in %FULL_PREFIX%...
231IF NOT EXIST "%BINDIR%" %MKDIR% "%BINDIR%"
232IF ERRORLEVEL 1 GOTO ERROR
233IF [%INSTALL_LUA%]==[ON] (
234 IF NOT EXIST "%LUA_BINDIR%" %MKDIR% "%LUA_BINDIR%"
235 IF NOT EXIST "%LUA_INCDIR%" %MKDIR% "%LUA_INCDIR%"
236 COPY lua5.1\bin\*.* "%LUA_BINDIR%" >NUL
237 COPY lua5.1\include\*.* "%LUA_INCDIR%" >NUL
238)
239COPY bin\*.* "%BINDIR%" >NUL
240IF ERRORLEVEL 1 GOTO ERROR
241COPY src\bin\*.* "%BINDIR%" >NUL
242IF ERRORLEVEL 1 GOTO ERROR
243FOR %%C IN (luarocks luarocks-admin) DO (
244 RENAME "%BINDIR%\%%C" %%C.lua
245 IF ERRORLEVEL 1 GOTO ERROR
246 DEL /F /Q "%BINDIR%\%%C.bat" 2>NUL
247 ECHO @ECHO OFF>> "%BINDIR%\%%C.bat"
248 ECHO SETLOCAL>> "%BINDIR%\%%C.bat"
249 ECHO SET LUA_PATH=%LUADIR%\?.lua;%LUADIR%\?\init.lua;%%LUA_PATH%%>> "%BINDIR%\%%C.bat"
250 ECHO SET PATH=%BINDIR%\;%%PATH%%>> "%BINDIR%\%%C.bat"
251 ECHO "%LUA_INTERPRETER%" "%BINDIR%\%%C.lua" %%*>> "%BINDIR%\%%C.bat"
252 ECHO ENDLOCAL>> "%BINDIR%\%%C.bat"
253)
254IF NOT EXIST "%LUADIR%\luarocks" %MKDIR% "%LUADIR%\luarocks"
255IF ERRORLEVEL 1 GOTO ERROR
256XCOPY /S src\luarocks\*.* "%LUADIR%\luarocks" >NUL
257IF ERRORLEVEL 1 GOTO ERROR
258
259RENAME "%LUADIR%\luarocks\cfg.lua" "cfg.lua.bak"
260ECHO local LUA_INCDIR=[[%LUA_INCDIR%]]>> "%LUADIR%\luarocks\cfg.lua"
261ECHO local LUA_LIBDIR=[[%LUA_LIBDIR%]]>> "%LUADIR%\luarocks\cfg.lua"
262ECHO local LUA_BINDIR=[[%LUA_BINDIR%]]>> "%LUADIR%\luarocks\cfg.lua"
263ECHO local LUA_INTERPRETER=[[%LUA_INTERPRETER%]]>> "%LUADIR%\luarocks\cfg.lua"
264ECHO local LUAROCKS_UNAME_S=[[WindowsNT]]>> "%LUADIR%\luarocks\cfg.lua"
265ECHO local LUAROCKS_UNAME_M=[[x86]]>> "%LUADIR%\luarocks\cfg.lua"
266ECHO local LUAROCKS_SYSCONFIG=[[%SYSCONFDIR%/config.lua]]>> "%LUADIR%\luarocks\cfg.lua"
267ECHO local LUAROCKS_ROCKS_TREE=[[%ROCKS_TREE%]]>> "%LUADIR%\luarocks\cfg.lua"
268ECHO local LUAROCKS_PREFIX=[[%PREFIX%]]>> "%LUADIR%\luarocks\cfg.lua"
269IF NOT [%FORCE_CONFIG%]==[] ECHO local LUAROCKS_FORCE_CONFIG=true>> "%LUADIR%\luarocks\cfg.lua"
270TYPE "%LUADIR%\luarocks\cfg.lua.bak">> "%LUADIR%\luarocks\cfg.lua"
271
272DEL /F /Q "%LUADIR%\luarocks\cfg.lua.bak"
273
274SET CONFIG_FILE=%SYSCONFDIR%\config.lua
275
276IF NOT EXIST "%SYSCONFDIR%" %MKDIR% "%SYSCONFDIR%"
277IF NOT EXIST "%CONFIG_FILE%" (
278 ECHO rocks_servers = {>> "%CONFIG_FILE%"
279 ECHO [[http://luarocks.luaforge.net/rocks]]>> "%CONFIG_FILE%"
280 ECHO }>> "%CONFIG_FILE%"
281 ECHO rocks_trees = {>> "%CONFIG_FILE%"
282 IF [%FORCE_CONFIG%]==[] ECHO home..[[/luarocks]],>> "%CONFIG_FILE%"
283 ECHO [[%ROCKS_TREE%]]>> "%CONFIG_FILE%"
284 ECHO }>> "%CONFIG_FILE%"
285 IF NOT [%SCRIPTS_DIR%]==[] ECHO scripts_dir=[[%SCRIPTS_DIR%]]>> "%CONFIG_FILE%"
286)
287
288IF [%SCRIPTS_DIR%]==[] (
289 %MKDIR% "%ROCKS_TREE%"\bin >NUL
290 COPY lua5.1\bin\*.dll "%ROCKS_TREE%"\bin >NUL
291)
292IF NOT [%SCRIPTS_DIR%]==[] (
293 %MKDIR% "%SCRIPTS_DIR%" >NUL
294 COPY lua5.1\bin\*.dll "%SCRIPTS_DIR%" >NUL
295)
296
297IF NOT EXIST "%ROCKS_TREE%" %MKDIR% "%ROCKS_TREE%"
298IF NOT EXIST "%APPDATA%/luarocks" %MKDIR% "%APPDATA%/luarocks"
299
300REM ***********************************************************
301REM Exit handlers
302REM ***********************************************************
303
304ECHO LuaRocks is installed!
305:QUIT
306ENDLOCAL
307EXIT /B 0
308
309:ERROR
310ECHO Failed installing LuaRocks.
311ENDLOCAL
312EXIT /B 1