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 | ||
