diff options
Diffstat (limited to 'src/luarocks/command_line.lua')
| -rw-r--r-- | src/luarocks/command_line.lua | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/luarocks/command_line.lua b/src/luarocks/command_line.lua index 059b7a1c..b98084e0 100644 --- a/src/luarocks/command_line.lua +++ b/src/luarocks/command_line.lua | |||
| @@ -23,6 +23,18 @@ local function die(message) | |||
| 23 | os.exit(1) | 23 | os.exit(1) |
| 24 | end | 24 | end |
| 25 | 25 | ||
| 26 | local function replace_tree(flags, args, tree) | ||
| 27 | local tree = dir.normalize(tree) | ||
| 28 | flags["tree"] = tree | ||
| 29 | for i = 1, #args do | ||
| 30 | if args[i]:match("%-%-tree=") then | ||
| 31 | args[i] = "--tree="..tree | ||
| 32 | break | ||
| 33 | end | ||
| 34 | end | ||
| 35 | path.use_tree(tree) | ||
| 36 | end | ||
| 37 | |||
| 26 | --- Main command-line processor. | 38 | --- Main command-line processor. |
| 27 | -- Parses input arguments and calls the appropriate driver function | 39 | -- Parses input arguments and calls the appropriate driver function |
| 28 | -- to execute the action requested on the command-line, forwarding | 40 | -- to execute the action requested on the command-line, forwarding |
| @@ -110,7 +122,7 @@ function run_command(...) | |||
| 110 | if not tree.root then | 122 | if not tree.root then |
| 111 | die("Configuration error: tree '"..tree.name.."' has no 'root' field.") | 123 | die("Configuration error: tree '"..tree.name.."' has no 'root' field.") |
| 112 | end | 124 | end |
| 113 | path.use_tree(dir.normalize(tree.root)) | 125 | replace_tree(flags, args, tree.root) |
| 114 | named = true | 126 | named = true |
| 115 | break | 127 | break |
| 116 | end | 128 | end |
| @@ -118,10 +130,10 @@ function run_command(...) | |||
| 118 | if not named then | 130 | if not named then |
| 119 | local fs = require("luarocks.fs") | 131 | local fs = require("luarocks.fs") |
| 120 | local root_dir = fs.absolute_name(flags["tree"]) | 132 | local root_dir = fs.absolute_name(flags["tree"]) |
| 121 | path.use_tree(root_dir) | 133 | replace_tree(flags, args, root_dir) |
| 122 | end | 134 | end |
| 123 | elseif flags["local"] then | 135 | elseif flags["local"] then |
| 124 | path.use_tree(cfg.home_tree) | 136 | replace_tree(flags, args, cfg.home_tree) |
| 125 | else | 137 | else |
| 126 | local trees = cfg.rocks_trees | 138 | local trees = cfg.rocks_trees |
| 127 | path.use_tree(trees[#trees]) | 139 | path.use_tree(trees[#trees]) |
