diff options
author | Hisham Muhammad <hisham@gobolinux.org> | 2013-12-12 23:25:29 -0200 |
---|---|---|
committer | Hisham Muhammad <hisham@gobolinux.org> | 2013-12-12 23:25:29 -0200 |
commit | 58aabb224b4b34779f4df01f4e5265d7d82fac49 (patch) | |
tree | 58039e810b74aeb0c18c2e6cd1a2a4add006a351 | |
parent | e37937d2f7f28d8bdf395ce1ad13df83d6b2b3ae (diff) | |
parent | f154f7e7741fe91850cb0bd4b537ccfaf32e1511 (diff) | |
download | luarocks-58aabb224b4b34779f4df01f4e5265d7d82fac49.tar.gz luarocks-58aabb224b4b34779f4df01f4e5265d7d82fac49.tar.bz2 luarocks-58aabb224b4b34779f4df01f4e5265d7d82fac49.zip |
Merge branch 'master' of github.com:keplerproject/luarocks
-rw-r--r-- | install.bat | 90 |
1 files changed, 52 insertions, 38 deletions
diff --git a/install.bat b/install.bat index 43a2b34f..280d361f 100644 --- a/install.bat +++ b/install.bat | |||
@@ -4,10 +4,11 @@ rem=rem --[[ | |||
4 | 4 | ||
5 | local vars = {} | 5 | local vars = {} |
6 | 6 | ||
7 | vars.PREFIX = [[C:\LuaRocks]] | 7 | |
8 | vars.PREFIX = os.getenv("PROGRAMFILES")..[[\LuaRocks]] | ||
8 | vars.VERSION = "2.1" | 9 | vars.VERSION = "2.1" |
9 | vars.SYSCONFDIR = nil | 10 | vars.SYSCONFDIR = (os.getenv("PROGRAMDATA") or (os.getenv("ALLUSERSPROFILE")..[[\Application Data]])) .. [[\LuaRocks]] -- ALLUSERS for WinXP compat |
10 | vars.ROCKS_TREE = nil | 11 | vars.ROCKS_TREE = vars.SYSCONFDIR |
11 | vars.SCRIPTS_DIR = nil | 12 | vars.SCRIPTS_DIR = nil |
12 | vars.LUA_INTERPRETER = nil | 13 | vars.LUA_INTERPRETER = nil |
13 | vars.LUA_PREFIX = nil | 14 | vars.LUA_PREFIX = nil |
@@ -21,13 +22,13 @@ vars.LUA_LIB_NAMES = "lua5.1.lib lua51.dll liblua.dll.a" | |||
21 | vars.LUA_RUNTIME = nil | 22 | vars.LUA_RUNTIME = nil |
22 | vars.UNAME_M = nil | 23 | vars.UNAME_M = nil |
23 | 24 | ||
24 | local P_SET = false | ||
25 | local FORCE = false | 25 | local FORCE = false |
26 | local FORCE_CONFIG = false | 26 | local FORCE_CONFIG = false |
27 | local INSTALL_LUA = false | 27 | local INSTALL_LUA = false |
28 | local USE_MINGW = false | 28 | local USE_MINGW = false |
29 | local REGISTRY = false | 29 | local REGISTRY = false |
30 | local NOADMIN = false | 30 | local NOADMIN = false |
31 | local PROMPT = true | ||
31 | 32 | ||
32 | --- | 33 | --- |
33 | -- Some helpers | 34 | -- Some helpers |
@@ -85,7 +86,7 @@ end | |||
85 | 86 | ||
86 | -- does the current user have admin priviledges ( = elevated) | 87 | -- does the current user have admin priviledges ( = elevated) |
87 | local function permission() | 88 | local function permission() |
88 | return exec("net session >nul 2>&1") -- fails if not admin | 89 | return exec("net session >NUL 2>&1") -- fails if not admin |
89 | end | 90 | end |
90 | 91 | ||
91 | -- rename file (full path) to backup (name only), appending number if required | 92 | -- rename file (full path) to backup (name only), appending number if required |
@@ -111,16 +112,17 @@ local function print_help() | |||
111 | print(S[[ | 112 | print(S[[ |
112 | Installs LuaRocks. | 113 | Installs LuaRocks. |
113 | 114 | ||
114 | /P [dir] (REQUIRED) Where to install LuaRocks. | 115 | /P [dir] Where to install LuaRocks. |
115 | Note that version; $VERSION, will be appended to this | 116 | Note that version; $VERSION, will be appended to this |
116 | path, so "/P c:\luarocks\" will install in | 117 | path, so "/P c:\luarocks\" will install in |
117 | "c:\luarocks\$VERSION\" | 118 | "c:\luarocks\$VERSION\" |
119 | Default is %PROGRAMFILES%\LuaRocks | ||
118 | 120 | ||
119 | Configuring the destinations: | 121 | Configuring the destinations: |
120 | /TREE [dir] Root of the local tree of installed rocks. | 122 | /TREE [dir] Root of the local tree of installed rocks. |
121 | Default is same place of installation | 123 | Default is %PROGRAMDATA%\LuaRocks |
122 | /SCRIPTS [dir] Where to install commandline scripts installed by | 124 | /SCRIPTS [dir] Where to install commandline scripts installed by |
123 | rocks. Default is TREE/bin. | 125 | rocks. Default is {TREE}/bin. |
124 | 126 | ||
125 | Configuring the Lua interpreter: | 127 | Configuring the Lua interpreter: |
126 | /LV [version] Lua version to use; either 5.1 or 5.2. | 128 | /LV [version] Lua version to use; either 5.1 or 5.2. |
@@ -148,7 +150,7 @@ Compiler configuration: | |||
148 | 150 | ||
149 | Other options: | 151 | Other options: |
150 | /CONFIG [dir] Location where the config file should be installed. | 152 | /CONFIG [dir] Location where the config file should be installed. |
151 | Default is same place of installation | 153 | Default is %PROGRAMDATA%\LuaRocks |
152 | /FORCECONFIG Use a single config location. Do not use the | 154 | /FORCECONFIG Use a single config location. Do not use the |
153 | LUAROCKS_CONFIG variable or the user's home directory. | 155 | LUAROCKS_CONFIG variable or the user's home directory. |
154 | Useful to avoid conflicts when LuaRocks | 156 | Useful to avoid conflicts when LuaRocks |
@@ -161,6 +163,11 @@ Other options: | |||
161 | switch to prevent elevation, but make sure the | 163 | switch to prevent elevation, but make sure the |
162 | destination paths are all accessible for the current | 164 | destination paths are all accessible for the current |
163 | user. | 165 | user. |
166 | /Q Do not prompt for confirmation of settings | ||
167 | |||
168 | Example: | ||
169 | To create a self contained install use (assuming Lua is in your PATH): | ||
170 | INSTALL /P c:\LuaRocks /TREE c:\LuaRocks /CONFIG c:\LuaRocks | ||
164 | 171 | ||
165 | ]]) | 172 | ]]) |
166 | end | 173 | end |
@@ -176,7 +183,6 @@ local function parse_options(args) | |||
176 | os.exit(0) | 183 | os.exit(0) |
177 | elseif name == "/P" then | 184 | elseif name == "/P" then |
178 | vars.PREFIX = option.value | 185 | vars.PREFIX = option.value |
179 | P_SET = true | ||
180 | elseif name == "/CONFIG" then | 186 | elseif name == "/CONFIG" then |
181 | vars.SYSCONFDIR = option.value | 187 | vars.SYSCONFDIR = option.value |
182 | elseif name == "/TREE" then | 188 | elseif name == "/TREE" then |
@@ -205,6 +211,8 @@ local function parse_options(args) | |||
205 | REGISTRY = true | 211 | REGISTRY = true |
206 | elseif name == "/NOADMIN" then | 212 | elseif name == "/NOADMIN" then |
207 | NOADMIN = true | 213 | NOADMIN = true |
214 | elseif name == "/Q" then | ||
215 | PROMPT = false | ||
208 | else | 216 | else |
209 | die("Unrecognized option: " .. name) | 217 | die("Unrecognized option: " .. name) |
210 | end | 218 | end |
@@ -213,9 +221,6 @@ end | |||
213 | 221 | ||
214 | -- check for combination/required flags | 222 | -- check for combination/required flags |
215 | local function check_flags() | 223 | local function check_flags() |
216 | if not P_SET then | ||
217 | die("Missing required parameter /P") | ||
218 | end | ||
219 | if INSTALL_LUA then | 224 | if INSTALL_LUA then |
220 | if vars.LUA_INCDIR or vars.LUA_BINDIR or vars.LUA_LIBDIR or vars.LUA_PREFIX then | 225 | if vars.LUA_INCDIR or vars.LUA_BINDIR or vars.LUA_LIBDIR or vars.LUA_PREFIX then |
221 | die("Cannot combine option /L with any of /LUA /BIN /LIB /INC") | 226 | die("Cannot combine option /L with any of /LUA /BIN /LIB /INC") |
@@ -531,8 +536,6 @@ else | |||
531 | print("Admin priviledges available for installing") | 536 | print("Admin priviledges available for installing") |
532 | end | 537 | end |
533 | 538 | ||
534 | vars.SYSCONFDIR = vars.SYSCONFDIR or vars.PREFIX | ||
535 | vars.ROCKS_TREE = vars.ROCKS_TREE or vars.PREFIX | ||
536 | vars.FULL_PREFIX = S"$PREFIX\\$VERSION" | 539 | vars.FULL_PREFIX = S"$PREFIX\\$VERSION" |
537 | vars.BINDIR = vars.FULL_PREFIX | 540 | vars.BINDIR = vars.FULL_PREFIX |
538 | vars.LIBDIR = vars.FULL_PREFIX | 541 | vars.LIBDIR = vars.FULL_PREFIX |
@@ -563,14 +566,18 @@ print(S[[ | |||
563 | Will configure LuaRocks with the following paths: | 566 | Will configure LuaRocks with the following paths: |
564 | LuaRocks : $FULL_PREFIX | 567 | LuaRocks : $FULL_PREFIX |
565 | Lua interpreter: $LUA_BINDIR\$LUA_INTERPRETER | 568 | Lua interpreter: $LUA_BINDIR\$LUA_INTERPRETER |
566 | Lua binaries : $LUA_BINDIR | 569 | binaries : $LUA_BINDIR |
567 | Lua libraries : $LUA_LIBDIR | 570 | libraries : $LUA_LIBDIR |
568 | Lua includes : $LUA_INCDIR | 571 | includes : $LUA_INCDIR |
569 | Binaries will be linked against: $LUA_LIBNAME with runtime $LUA_RUNTIME | 572 | Binaries will be linked against: $LUA_LIBNAME with runtime $LUA_RUNTIME |
570 | System architecture detected as: $UNAME_M | 573 | System architecture detected as: $UNAME_M |
571 | 574 | ||
572 | ]]) | 575 | ]]) |
573 | 576 | ||
577 | if PROMPT then | ||
578 | print("Press <ENTER> to start installing, or press <CTRL>+<C> to abort. Use install /? for installation options.") | ||
579 | io.read() | ||
580 | end | ||
574 | 581 | ||
575 | -- *********************************************************** | 582 | -- *********************************************************** |
576 | -- Install LuaRocks files | 583 | -- Install LuaRocks files |
@@ -644,23 +651,26 @@ ENDLOCAL | |||
644 | f:close() | 651 | f:close() |
645 | print(S"Created LuaRocks command: $BINDIR\\"..c..".bat") | 652 | print(S"Created LuaRocks command: $BINDIR\\"..c..".bat") |
646 | end | 653 | end |
647 | -- configure 'scripts' directory | ||
648 | if vars.SCRIPTS_DIR then | ||
649 | mkdir(vars.SCRIPTS_DIR) | ||
650 | if not USE_MINGW then | ||
651 | -- definitly not for MinGW because of conflicting runtimes | ||
652 | -- but is it ok to do it for others??? | ||
653 | exec(S[[COPY lua5.1\bin\*.dll "$SCRIPTS_DIR" >NUL]]) | ||
654 | end | ||
655 | else | ||
656 | if not USE_MINGW then | ||
657 | mkdir(S[[$ROCKS_TREE\bin]]) | ||
658 | -- definitly not for MinGW because of conflicting runtimes | ||
659 | -- but is it ok to do it for others??? | ||
660 | exec(S[[COPY lua5.1\bin\*.dll "$ROCKS_TREE"\bin >NUL]]) | ||
661 | end | ||
662 | end | ||
663 | 654 | ||
655 | -- part below was commented out as its purpose was unclear | ||
656 | -- see https://github.com/keplerproject/luarocks/pull/197#issuecomment-30176548 | ||
657 | |||
658 | -- configure 'scripts' directory | ||
659 | -- if vars.SCRIPTS_DIR then | ||
660 | -- mkdir(vars.SCRIPTS_DIR) | ||
661 | -- if not USE_MINGW then | ||
662 | -- -- definitly not for MinGW because of conflicting runtimes | ||
663 | -- -- but is it ok to do it for others??? | ||
664 | -- exec(S[[COPY lua5.1\bin\*.dll "$SCRIPTS_DIR" >NUL]]) | ||
665 | -- end | ||
666 | -- else | ||
667 | -- if not USE_MINGW then | ||
668 | -- mkdir(S[[$ROCKS_TREE\bin]]) | ||
669 | -- -- definitly not for MinGW because of conflicting runtimes | ||
670 | -- -- but is it ok to do it for others??? | ||
671 | -- exec(S[[COPY lua5.1\bin\*.dll "$ROCKS_TREE"\bin >NUL]]) | ||
672 | -- end | ||
673 | -- end | ||
664 | 674 | ||
665 | -- *********************************************************** | 675 | -- *********************************************************** |
666 | -- Configure LuaRocks | 676 | -- Configure LuaRocks |
@@ -756,7 +766,8 @@ else | |||
756 | print(S[[System rocktree exists : "$ROCKS_TREE"]]) | 766 | print(S[[System rocktree exists : "$ROCKS_TREE"]]) |
757 | end | 767 | end |
758 | 768 | ||
759 | vars.LOCAL_TREE = os.getenv("APPDATA")..[[\LuaRocks]] | 769 | vars.APPDATA = os.getenv("APPDATA") |
770 | vars.LOCAL_TREE = vars.APPDATA..[[\LuaRocks]] | ||
760 | if not exists(vars.LOCAL_TREE) then | 771 | if not exists(vars.LOCAL_TREE) then |
761 | mkdir(vars.LOCAL_TREE) | 772 | mkdir(vars.LOCAL_TREE) |
762 | print(S[[Created local user rocktree: "$LOCAL_TREE"]]) | 773 | print(S[[Created local user rocktree: "$LOCAL_TREE"]]) |
@@ -770,16 +781,16 @@ if REGISTRY then | |||
770 | print() | 781 | print() |
771 | print([[Loading registry information for ".rockspec" files]]) | 782 | print([[Loading registry information for ".rockspec" files]]) |
772 | exec( S[[lua5.1\bin\lua5.1.exe "$FULL_PREFIX\LuaRocks.reg.lua" "$FULL_PREFIX\LuaRocks.reg.template"]] ) | 783 | exec( S[[lua5.1\bin\lua5.1.exe "$FULL_PREFIX\LuaRocks.reg.lua" "$FULL_PREFIX\LuaRocks.reg.template"]] ) |
773 | exec( S[["$FULL_PREFIX\\LuaRocks.reg"]] ) | 784 | exec( S[[regedit /S "$FULL_PREFIX\\LuaRocks.reg"]] ) |
774 | end | 785 | end |
775 | 786 | ||
776 | -- *********************************************************** | 787 | -- *********************************************************** |
777 | -- Cleanup | 788 | -- Cleanup |
778 | -- *********************************************************** | 789 | -- *********************************************************** |
779 | -- remove regsitry related files, no longer needed | 790 | -- remove regsitry related files, no longer needed |
780 | exec( S[[del "$FULL_PREFIX\LuaRocks.reg.*" > nul]] ) | 791 | exec( S[[del "$FULL_PREFIX\LuaRocks.reg.*" >NUL]] ) |
781 | -- remove pe-parser module | 792 | -- remove pe-parser module |
782 | exec( S[[del "$FULL_PREFIX\pe-parser.lua" > nul]] ) | 793 | exec( S[[del "$FULL_PREFIX\pe-parser.lua" >NUL]] ) |
783 | 794 | ||
784 | -- *********************************************************** | 795 | -- *********************************************************** |
785 | -- Exit handlers | 796 | -- Exit handlers |
@@ -805,5 +816,8 @@ System rocktree | |||
805 | LUA_PATH : $ROCKS_TREE\share\lua\$LUA_VERSION\?.lua;$ROCKS_TREE\share\lua\$LUA_VERSION\?\init.lua | 816 | LUA_PATH : $ROCKS_TREE\share\lua\$LUA_VERSION\?.lua;$ROCKS_TREE\share\lua\$LUA_VERSION\?\init.lua |
806 | LUA_CPATH: $ROCKS_TREE\lib\lua\$LUA_VERSION\?.dll | 817 | LUA_CPATH: $ROCKS_TREE\lib\lua\$LUA_VERSION\?.dll |
807 | 818 | ||
819 | Note that the %APPDATA% element in the paths above is user specific and it MUST be replaced by its actual value. | ||
820 | For the current user that value is: $APPDATA. | ||
821 | |||
808 | ]]) | 822 | ]]) |
809 | os.exit(0) | 823 | os.exit(0) |