diff options
author | Thijs Schreijer <thijs@thijsschreijer.nl> | 2013-04-09 13:11:55 +0200 |
---|---|---|
committer | Thijs Schreijer <thijs@thijsschreijer.nl> | 2013-04-09 13:11:55 +0200 |
commit | b974f6d3841b24596c4cbc2c27f9f6572afe52d5 (patch) | |
tree | 9226304a5d8ac0a756e85b6316219cd690ab3518 /win32 | |
parent | baef212bf582e59421cca37e1e11167dc33f974a (diff) | |
download | luarocks-b974f6d3841b24596c4cbc2c27f9f6572afe52d5.tar.gz luarocks-b974f6d3841b24596c4cbc2c27f9f6572afe52d5.tar.bz2 luarocks-b974f6d3841b24596c4cbc2c27f9f6572afe52d5.zip |
installer adds information for the registry, including icon and actions for .rockspec files when /R argument is provided.
includes the new luarocksw.bat batch file
also: made the /P argument of the installer required
Diffstat (limited to 'win32')
-rw-r--r-- | win32/bin/LuaRocks.reg.template | 53 | ||||
-rw-r--r-- | win32/bin/create_reg_file.lua | 51 | ||||
-rw-r--r-- | win32/bin/lua.ico | bin | 0 -> 22486 bytes | |||
-rw-r--r-- | win32/bin/luarocksw.bat | 48 |
4 files changed, 152 insertions, 0 deletions
diff --git a/win32/bin/LuaRocks.reg.template b/win32/bin/LuaRocks.reg.template new file mode 100644 index 00000000..3af1ff34 --- /dev/null +++ b/win32/bin/LuaRocks.reg.template | |||
@@ -0,0 +1,53 @@ | |||
1 | Windows Registry Editor Version 5.00 | ||
2 | |||
3 | [HKEY_CLASSES_ROOT\.rockspec] | ||
4 | @="Lua.Rockspec" | ||
5 | |||
6 | [HKEY_CLASSES_ROOT\.rockspec\Content Type] | ||
7 | @="text/plain" | ||
8 | |||
9 | [HKEY_CLASSES_ROOT\.rockspec\PerceivedType] | ||
10 | @="text" | ||
11 | |||
12 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.rockspec] | ||
13 | @="Lua.Rockspec" | ||
14 | |||
15 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.rockspec\Content Type] | ||
16 | @="text/plain" | ||
17 | |||
18 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.rockspec\PerceivedType] | ||
19 | @="text" | ||
20 | |||
21 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec] | ||
22 | @="Lua Rockspec File" | ||
23 | |||
24 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\DefaultIcon] | ||
25 | @="<LUAROCKSPATH>lua.ico" | ||
26 | |||
27 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockpsec\Shell] | ||
28 | |||
29 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\Shell\Fetch] | ||
30 | @="Fetch and install" | ||
31 | |||
32 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\Shell\Fetch\Command] | ||
33 | @="\"<LUAROCKSPATH>luarocksw.bat" install \"%1\" | ||
34 | |||
35 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\Shell\Install] | ||
36 | @="Install Lua module" | ||
37 | |||
38 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\Shell\Install\Command] | ||
39 | @="\"<LUAROCKSPATH>luarocksw.bat" make \"%1\" | ||
40 | |||
41 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\Shell\Uninstall] | ||
42 | @="Install Lua module (this version)" | ||
43 | |||
44 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\Shell\Uninstall\Command] | ||
45 | @="\"<LUAROCKSPATH>luarocksw.bat" remove \"%1\" | ||
46 | |||
47 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\Shell\UninstallAll] | ||
48 | @="Install Lua module (all versions)" | ||
49 | |||
50 | [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Lua.Rockspec\Shell\UninstallAll\Command] | ||
51 | @="\"<LUAROCKSPATH>luarocksw.bat" removeall \"%1\" | ||
52 | |||
53 | |||
diff --git a/win32/bin/create_reg_file.lua b/win32/bin/create_reg_file.lua new file mode 100644 index 00000000..df0b7491 --- /dev/null +++ b/win32/bin/create_reg_file.lua | |||
@@ -0,0 +1,51 @@ | |||
1 | -- Call this file using its full path and the template file as a parameter; | ||
2 | -- | ||
3 | -- C:\> lua.exe "create_reg_file.lua" "c:\luarocks\2.0\LuaRocks.reg.template" | ||
4 | -- | ||
5 | -- it will strip the ".template" extension and write to that file the | ||
6 | -- template contents, where "<LUAROCKSPATH>" will be replaced by the path | ||
7 | -- to LuaRocks (including the trailing backslash) | ||
8 | |||
9 | |||
10 | |||
11 | -- Check argument | ||
12 | local f = (arg or {})[1] | ||
13 | if not f then | ||
14 | print("must provide template file on command line") | ||
15 | os.exit(1) | ||
16 | end | ||
17 | |||
18 | -- cleanup filepath, remove all double backslashes | ||
19 | while f:match("\\\\") do | ||
20 | f:gsub("\\\\", "\\") | ||
21 | end | ||
22 | |||
23 | -- extract path and name from argument | ||
24 | local p = "" | ||
25 | local ni = f | ||
26 | for i = #f, 1, -1 do | ||
27 | if f:sub(i,i) == "\\" then | ||
28 | ni = f:sub(i+1) | ||
29 | p = f:sub(1, i) | ||
30 | break | ||
31 | end | ||
32 | end | ||
33 | |||
34 | -- create output name | ||
35 | local no = ni:gsub("%.template","") | ||
36 | |||
37 | -- create path substitute; escape backslash by doubles | ||
38 | local ps = p:gsub("\\", "\\\\") | ||
39 | |||
40 | -- read template | ||
41 | local fh = io.open(f) | ||
42 | local content = fh:read("*a") | ||
43 | fh:close() | ||
44 | |||
45 | -- fill template | ||
46 | content = content:gsub("%<LUAROCKSPATH%>", ps) | ||
47 | |||
48 | -- write destination file | ||
49 | fh = io.open(p..no, "w+") | ||
50 | fh:write(content) | ||
51 | fh:close() | ||
diff --git a/win32/bin/lua.ico b/win32/bin/lua.ico new file mode 100644 index 00000000..56dc4fe1 --- /dev/null +++ b/win32/bin/lua.ico | |||
Binary files differ | |||
diff --git a/win32/bin/luarocksw.bat b/win32/bin/luarocksw.bat new file mode 100644 index 00000000..a0144c44 --- /dev/null +++ b/win32/bin/luarocksw.bat | |||
@@ -0,0 +1,48 @@ | |||
1 | @echo off | ||
2 | setlocal | ||
3 | SET MYPATH=%~dp0 | ||
4 | |||
5 | |||
6 | ECHO Same as 'luarocks' command, except this | ||
7 | ECHO command will pause after completion, allowing for | ||
8 | ECHO examination of output. | ||
9 | ECHO | ||
10 | ECHO For LuaRocks help use: | ||
11 | ECHO LUAROCKS HELP | ||
12 | ECHO | ||
13 | ECHO OPTIONS specific for LUAROCKSW: | ||
14 | ECHO REMOVEALL is a command specific to this batch file | ||
15 | ECHO the option takes a FULL ROCKSPEC filename and then | ||
16 | ECHO it will strip path, version and extension info from | ||
17 | ECHO it before executing the LUAROCKS REMOVE command | ||
18 | ECHO Example: | ||
19 | ECHO luarocksw remove "c:\somedir\modulename-1.0-1.rockspec" | ||
20 | ECHO will execute: | ||
21 | ECHO luarocks remove "c:\somedir\modulename-1.0-1.rockspec" | ||
22 | ECHO and will only remove the specific version 1.0 from the | ||
23 | ECHO system. | ||
24 | ECHO luarocksw removeall "c:\somedir\modulename-1.0-1.rockspec" | ||
25 | ECHO will execute: | ||
26 | ECHO luarocks remove modulename | ||
27 | ECHO and will remove all versions of this package | ||
28 | |||
29 | |||
30 | |||
31 | REM if REMOVEALL command then info must be stripped from the parameter | ||
32 | if [%1]==[removeall] goto REMOVEALL | ||
33 | |||
34 | REM execute LuaRocks and wait for results | ||
35 | echo executing: luarocks %* | ||
36 | call %MYPATH%luarocks %* | ||
37 | pause | ||
38 | goto END | ||
39 | |||
40 | :REMOVEALL | ||
41 | for /f "delims=-" %%a in ("%~n2") do ( | ||
42 | echo executing: luarocks remove %%a | ||
43 | %MYPATH%luarocks remove "%%a" | ||
44 | pause | ||
45 | goto END | ||
46 | ) | ||
47 | |||
48 | :END \ No newline at end of file | ||