From c9d57bd30f07dca8ac104fdadc6486a127e8509c Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Tue, 14 Jul 2015 18:56:20 +0200 Subject: minor textual fixes --- install.bat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'install.bat') diff --git a/install.bat b/install.bat index 57e3611c..b9bfcb9b 100644 --- a/install.bat +++ b/install.bat @@ -97,7 +97,7 @@ local function permission() return exec("net session >NUL 2>&1") -- fails if not admin end --- rename file (full path) to backup (name only), appending number if required +-- rename filename (full path) to backupname (name only), appending number if required -- returns the new name (name only) local function backup(filename, backupname) local path = filename:match("(.+)%\\.-$").."\\" @@ -255,7 +255,7 @@ local function check_flags() die("Cannot combine option /L with any of /LUA /BIN /LIB /INC") end if vars.LUA_VERSION ~= "5.1" then - die("Bundled Lua version is 5.1, cannot install 5.2") + die("Bundled Lua version is 5.1, cannot install "..vars.LUA_VERSION) end end if vars.LUA_VERSION ~= "5.1" then -- cgit v1.2.3-55-g6feb From 8c182d5dec64de03a8226f562b4caec49982f025 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Sat, 18 Jul 2015 23:56:16 +0200 Subject: Windows installer: backup configuration files before removing installation directory --- install.bat | 73 ++++++++++++++++++++++++++++++++----------------------------- 1 file changed, 38 insertions(+), 35 deletions(-) (limited to 'install.bat') diff --git a/install.bat b/install.bat index b9bfcb9b..398a64eb 100644 --- a/install.bat +++ b/install.bat @@ -8,6 +8,7 @@ local vars = {} vars.PREFIX = nil vars.VERSION = "2.2" vars.SYSCONFDIR = nil +vars.CONFBACKUPDIR = nil vars.SYSCONFFILENAME = nil vars.CONFIG_FILE = nil vars.TREE_ROOT = nil @@ -79,7 +80,7 @@ end local function exec(cmd) --print(cmd) - local status = os.execute(cmd) + local status = os.execute("type NUL && "..cmd) return (status == 0 or status == true) -- compat 5.1/5.2 end @@ -479,6 +480,29 @@ local function look_for_lua_install () return false end +-- backup config[x.x].lua[.bak] and site_config[_x_x].lua +local function backup_config_files() + local temppath + while not temppath do + temppath = os.getenv("temp").."\\LR-config-backup-"..tostring(math.random(10000)) + if exists(temppath) then temppath = nil end + end + print("'"..temppath.."'") + vars.CONFBACKUPDIR = temppath + mkdir(vars.CONFBACKUPDIR) + exec(S[[COPY "$PREFIX\config*.*" "$CONFBACKUPDIR" >NUL]]) + exec(S[[COPY "$FULL_PREFIX\lua\luarocks\site_config*.*" "$CONFBACKUPDIR" >NUL]]) +end + +-- restore previously backed up config files +local function restore_config_files() + if not vars.CONFBACKUPDIR then return end -- there is no backup to restore + exec(S[[COPY "$CONFBACKUPDIR\config*.*" "$PREFIX" >NUL]]) + exec(S[[COPY "$CONFBACKUPDIR\site_config*.*" "$FULL_PREFIX\lua\luarocks" >NUL]]) + -- cleanup + exec(S[[RD /S /Q "$CONFBACKUPDIR"]]) + vars.CONFBACKUPDIR = nil +end -- *********************************************************** -- Installer script start @@ -664,14 +688,16 @@ print([[ -- *********************************************************** -- Install LuaRocks files -- *********************************************************** -if FORCE then - print(S"Removing $FULL_PREFIX...") - exec(S[[RD /S /Q "$FULL_PREFIX"]]) - print() -end if exists(vars.FULL_PREFIX) then - die(S"$FULL_PREFIX exists. Use /F to force removal and reinstallation.") + if not FORCE then + die(S"$FULL_PREFIX exists. Use /F to force removal and reinstallation.") + else + backup_config_files() + print(S"Removing $FULL_PREFIX...") + exec(S[[RD /S /Q "$FULL_PREFIX"]]) + print() + end end print(S"Installing LuaRocks in $FULL_PREFIX...") @@ -776,37 +802,21 @@ exit /b %EXITCODE% print(S"Created LuaRocks command: $BINDIR\\"..c..".bat") end --- part below was commented out as its purpose was unclear --- see https://github.com/keplerproject/luarocks/pull/197#issuecomment-30176548 - --- configure 'scripts' directory --- if vars.TREE_BIN then --- mkdir(vars.TREE_BIN) --- if not USE_MINGW then --- -- definitly not for MinGW because of conflicting runtimes --- -- but is it ok to do it for others??? --- exec(S[[COPY lua5.1\bin\*.dll "$TREE_BIN" >NUL]]) --- end --- else --- if not USE_MINGW then --- mkdir(S[[$TREE_ROOT\bin]]) --- -- definitly not for MinGW because of conflicting runtimes --- -- but is it ok to do it for others??? --- exec(S[[COPY lua5.1\bin\*.dll "$TREE_ROOT"\bin >NUL]]) --- end --- end - -- *********************************************************** -- Configure LuaRocks -- *********************************************************** +restore_config_files() print() print("Configuring LuaRocks...") -- Create a site-config file local site_config = S("site_config_$LUA_VERSION"):gsub("%.","_") if exists(S([[$LUADIR\luarocks\]]..site_config..[[.lua]])) then - exec(S([[RENAME "$LUADIR\luarocks\]]..site_config..[[.lua" site_config.lua.bak]])) + local nname = backup(S([[$LUADIR\luarocks\]]..site_config..[[.lua]]), site_config..".lua.bak") + print("***************") + print("*** WARNING *** LuaRocks site_config file already exists: '"..site_config..".lua'. The old file has been renamed to '"..nname.."'") + print("***************") end local f = io.open(vars.LUADIR.."\\luarocks\\"..site_config..".lua", "w") f:write(S[=[ @@ -832,13 +842,6 @@ site_config.LUAROCKS_MD5CHECKER=[[md5sum]] if FORCE_CONFIG then f:write("site_config.LUAROCKS_FORCE_CONFIG=true\n") end -if exists(vars.LUADIR.."\\luarocks\\"..site_config..".lua.bak") then - for line in io.lines(vars.LUADIR.."\\luarocks\\"..site_config..".lua.bak", "r") do - f:write(line) - f:write("\n") - end - exec(S([[DEL /F /Q "$LUADIR\luarocks\]]..site_config..[[.lua.bak"]])) -end f:write("return site_config\n") f:close() print(S([[Created LuaRocks site-config file: $LUADIR\luarocks\]]..site_config..[[.lua]])) -- cgit v1.2.3-55-g6feb From 5159a50f5fa28cd935c13d8d3bdea565117d6a29 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Sun, 19 Jul 2015 00:11:20 +0200 Subject: Windows installer: no longer use the LR version in the target installation path. Fixes #151 --- install.bat | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) (limited to 'install.bat') diff --git a/install.bat b/install.bat index 398a64eb..33453c65 100644 --- a/install.bat +++ b/install.bat @@ -487,18 +487,17 @@ local function backup_config_files() temppath = os.getenv("temp").."\\LR-config-backup-"..tostring(math.random(10000)) if exists(temppath) then temppath = nil end end - print("'"..temppath.."'") vars.CONFBACKUPDIR = temppath mkdir(vars.CONFBACKUPDIR) exec(S[[COPY "$PREFIX\config*.*" "$CONFBACKUPDIR" >NUL]]) - exec(S[[COPY "$FULL_PREFIX\lua\luarocks\site_config*.*" "$CONFBACKUPDIR" >NUL]]) + exec(S[[COPY "$PREFIX\lua\luarocks\site_config*.*" "$CONFBACKUPDIR" >NUL]]) end -- restore previously backed up config files local function restore_config_files() if not vars.CONFBACKUPDIR then return end -- there is no backup to restore exec(S[[COPY "$CONFBACKUPDIR\config*.*" "$PREFIX" >NUL]]) - exec(S[[COPY "$CONFBACKUPDIR\site_config*.*" "$FULL_PREFIX\lua\luarocks" >NUL]]) + exec(S[[COPY "$CONFBACKUPDIR\site_config*.*" "$PREFIX\lua\luarocks" >NUL]]) -- cleanup exec(S[[RD /S /Q "$CONFBACKUPDIR"]]) vars.CONFBACKUPDIR = nil @@ -610,11 +609,10 @@ else end vars.PREFIX = vars.PREFIX or os.getenv("PROGRAMFILES")..[[\LuaRocks]] -vars.FULL_PREFIX = S"$PREFIX\\$VERSION" -vars.BINDIR = vars.FULL_PREFIX -vars.LIBDIR = vars.FULL_PREFIX -vars.LUADIR = S"$FULL_PREFIX\\lua" -vars.INCDIR = S"$FULL_PREFIX\\include" +vars.BINDIR = vars.PREFIX +vars.LIBDIR = vars.PREFIX +vars.LUADIR = S"$PREFIX\\lua" +vars.INCDIR = S"$PREFIX\\include" vars.LUA_SHORTV = vars.LUA_VERSION:gsub("%.", "") if INSTALL_LUA then @@ -659,7 +657,7 @@ print(S[[ ========================== Will configure LuaRocks with the following paths: -LuaRocks : $FULL_PREFIX +LuaRocks : $PREFIX Config file : $CONFIG_FILE Rocktree : $TREE_ROOT @@ -689,18 +687,18 @@ print([[ -- Install LuaRocks files -- *********************************************************** -if exists(vars.FULL_PREFIX) then +if exists(vars.PREFIX) then if not FORCE then - die(S"$FULL_PREFIX exists. Use /F to force removal and reinstallation.") + die(S"$PREFIX exists. Use /F to force removal and reinstallation.") else backup_config_files() - print(S"Removing $FULL_PREFIX...") - exec(S[[RD /S /Q "$FULL_PREFIX"]]) + print(S"Removing $PREFIX...") + exec(S[[RD /S /Q "$PREFIX"]]) print() end end -print(S"Installing LuaRocks in $FULL_PREFIX...") +print(S"Installing LuaRocks in $PREFIX...") if not exists(vars.BINDIR) then if not mkdir(vars.BINDIR) then die() @@ -916,17 +914,17 @@ if REGISTRY then -- expand template with correct path information print() print([[Loading registry information for ".rockspec" files]]) - exec( S[[win32\lua5.1\bin\lua5.1.exe "$FULL_PREFIX\LuaRocks.reg.lua" "$FULL_PREFIX\LuaRocks.reg.template"]] ) - exec( S[[regedit /S "$FULL_PREFIX\\LuaRocks.reg"]] ) + exec( S[[win32\lua5.1\bin\lua5.1.exe "$PREFIX\LuaRocks.reg.lua" "$PREFIX\LuaRocks.reg.template"]] ) + exec( S[[regedit /S "$PREFIX\\LuaRocks.reg"]] ) end -- *********************************************************** -- Cleanup -- *********************************************************** -- remove regsitry related files, no longer needed -exec( S[[del "$FULL_PREFIX\LuaRocks.reg.*" >NUL]] ) +exec( S[[del "$PREFIX\LuaRocks.reg.*" >NUL]] ) -- remove pe-parser module -exec( S[[del "$FULL_PREFIX\pe-parser.lua" >NUL]] ) +exec( S[[del "$PREFIX\pe-parser.lua" >NUL]] ) -- *********************************************************** -- Exit handlers @@ -946,8 +944,8 @@ Lua interpreter; PATH : $LUA_BINDIR PATHEXT : .LUA LuaRocks; - PATH : $FULL_PREFIX - LUA_PATH : $FULL_PREFIX\lua\?.lua;$FULL_PREFIX\lua\?\init.lua + PATH : $PREFIX + LUA_PATH : $PREFIX\lua\?.lua;$PREFIX\lua\?\init.lua Local user rocktree (Note: %APPDATA% is user dependent); PATH : %APPDATA%\LuaRocks\bin LUA_PATH : %APPDATA%\LuaRocks\share\lua\$LUA_VERSION\?.lua;%APPDATA%\LuaRocks\share\lua\$LUA_VERSION\?\init.lua -- cgit v1.2.3-55-g6feb From b24f9b7453cf7a3ffd2e1b1f463f710508b491b2 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Sun, 19 Jul 2015 00:22:33 +0200 Subject: update windows installer help text --- install.bat | 3 --- 1 file changed, 3 deletions(-) (limited to 'install.bat') diff --git a/install.bat b/install.bat index 33453c65..17327992 100644 --- a/install.bat +++ b/install.bat @@ -122,9 +122,6 @@ local function print_help() Installs LuaRocks. /P [dir] Where to install LuaRocks. - Note that version; $VERSION, will be appended to this - path, so "/P c:\luarocks\" will install in - "c:\luarocks\$VERSION\" Default is %PROGRAMFILES%\LuaRocks Configuring the destinations: -- cgit v1.2.3-55-g6feb From 6a0de88abc9bae4a50df72f702936c91e6109781 Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Sun, 26 Jul 2015 18:47:15 +0200 Subject: moved systree on top of Lua installation --- install.bat | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) (limited to 'install.bat') diff --git a/install.bat b/install.bat index 17327992..b34e97b3 100644 --- a/install.bat +++ b/install.bat @@ -630,17 +630,23 @@ else vars.UNAME_M = get_architecture() -- can only do when installation was found end -local datapath -if vars.UNAME_M == "x86" then - datapath = os.getenv("PROGRAMFILES") .. [[\LuaRocks]] -else - -- our target interpreter is 64bit, so the tree (with binaries) should go into 64bit program files - datapath = os.getenv("ProgramW6432") .. [[\LuaRocks]] +-- check location of system tree +if not vars.TREE_ROOT then + -- no system tree location given, so we need to construct a default value + if vars.LUA_BINDIR:lower():match([[([\/]+bin[\/]*)$]]) then + -- lua binary is located in a 'bin' subdirectory, so assume + -- default Lua layout and match rocktree on top + vars.TREE_ROOT = vars.LUA_BINDIR:lower():gsub([[[\/]+bin[\/]*$]], [[\]]) + else + -- no 'bin', so use a named tree next to the Lua executable + vars.TREE_ROOT = vars.LUA_BINDIR .. [[\systree]] + end end + +local datapath vars.SYSCONFDIR = vars.SYSCONFDIR or vars.PREFIX vars.SYSCONFFILENAME = S"config-$LUA_VERSION.lua" vars.CONFIG_FILE = vars.SYSCONFDIR.."\\"..vars.SYSCONFFILENAME -vars.TREE_ROOT = vars.TREE_ROOT or datapath..[[\systree]] if SELFCONTAINED then vars.SYSCONFDIR = vars.PREFIX vars.TREE_ROOT = vars.PREFIX..[[\systree]] -- cgit v1.2.3-55-g6feb From 908756d54f22d16b743dad5d5d8314b4fb03817b Mon Sep 17 00:00:00 2001 From: Thijs Schreijer Date: Sun, 26 Jul 2015 22:35:42 +0200 Subject: update commandline help Windows installer --- install.bat | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'install.bat') diff --git a/install.bat b/install.bat index b34e97b3..42b01c43 100644 --- a/install.bat +++ b/install.bat @@ -125,8 +125,9 @@ Installs LuaRocks. Default is %PROGRAMFILES%\LuaRocks Configuring the destinations: -/TREE [dir] Root of the local tree of installed rocks. - Default is %PROGRAMFILES%\LuaRocks\systree +/TREE [dir] Root of the local system tree of installed rocks. + Default is {BIN}\..\ if {BIN} ends with '\bin' + otherwise it is {BIN}\systree. /SCRIPTS [dir] Where to install commandline scripts installed by rocks. Default is {TREE}\bin. /LUAMOD [dir] Where to install Lua modules installed by rocks. -- cgit v1.2.3-55-g6feb