aboutsummaryrefslogtreecommitdiff
path: root/win32
diff options
context:
space:
mode:
authorThijs Schreijer <thijs@thijsschreijer.nl>2013-04-09 13:11:55 +0200
committerThijs Schreijer <thijs@thijsschreijer.nl>2013-04-09 13:11:55 +0200
commitb974f6d3841b24596c4cbc2c27f9f6572afe52d5 (patch)
tree9226304a5d8ac0a756e85b6316219cd690ab3518 /win32
parentbaef212bf582e59421cca37e1e11167dc33f974a (diff)
downloadluarocks-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.template53
-rw-r--r--win32/bin/create_reg_file.lua51
-rw-r--r--win32/bin/lua.icobin0 -> 22486 bytes
-rw-r--r--win32/bin/luarocksw.bat48
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 @@
1Windows 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
12local f = (arg or {})[1]
13if not f then
14 print("must provide template file on command line")
15 os.exit(1)
16end
17
18-- cleanup filepath, remove all double backslashes
19while f:match("\\\\") do
20 f:gsub("\\\\", "\\")
21end
22
23-- extract path and name from argument
24local p = ""
25local ni = f
26for 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
32end
33
34-- create output name
35local no = ni:gsub("%.template","")
36
37-- create path substitute; escape backslash by doubles
38local ps = p:gsub("\\", "\\\\")
39
40-- read template
41local fh = io.open(f)
42local content = fh:read("*a")
43fh:close()
44
45-- fill template
46content = content:gsub("%<LUAROCKSPATH%>", ps)
47
48-- write destination file
49fh = io.open(p..no, "w+")
50fh:write(content)
51fh: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
2setlocal
3SET MYPATH=%~dp0
4
5
6ECHO Same as 'luarocks' command, except this
7ECHO command will pause after completion, allowing for
8ECHO examination of output.
9ECHO
10ECHO For LuaRocks help use:
11ECHO LUAROCKS HELP
12ECHO
13ECHO OPTIONS specific for LUAROCKSW:
14ECHO REMOVEALL is a command specific to this batch file
15ECHO the option takes a FULL ROCKSPEC filename and then
16ECHO it will strip path, version and extension info from
17ECHO it before executing the LUAROCKS REMOVE command
18ECHO Example:
19ECHO luarocksw remove "c:\somedir\modulename-1.0-1.rockspec"
20ECHO will execute:
21ECHO luarocks remove "c:\somedir\modulename-1.0-1.rockspec"
22ECHO and will only remove the specific version 1.0 from the
23ECHO system.
24ECHO luarocksw removeall "c:\somedir\modulename-1.0-1.rockspec"
25ECHO will execute:
26ECHO luarocks remove modulename
27ECHO and will remove all versions of this package
28
29
30
31REM if REMOVEALL command then info must be stripped from the parameter
32if [%1]==[removeall] goto REMOVEALL
33
34REM execute LuaRocks and wait for results
35echo executing: luarocks %*
36call %MYPATH%luarocks %*
37pause
38goto END
39
40:REMOVEALL
41for /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