From 3f67e81a25607371efde249d83f1e9521349bb19 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Wed, 18 Dec 2013 15:33:11 -0200 Subject: Add named trees, as suggested by @Tieske, plus tests. --- src/luarocks/command_line.lua | 19 ++++++++++++++++--- test/testing.sh | 6 +++--- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/luarocks/command_line.lua b/src/luarocks/command_line.lua index d16ef8e2..63b918b5 100644 --- a/src/luarocks/command_line.lua +++ b/src/luarocks/command_line.lua @@ -98,9 +98,22 @@ function run_command(...) if flags["tree"] == true or flags["tree"] == "" then die("Argument error: use --tree=") end - local fs = require("luarocks.fs") - local root_dir = fs.absolute_name(flags["tree"]) - path.use_tree(root_dir) + local named = false + for _, tree in ipairs(cfg.rocks_trees) do + if type(tree) == "table" and flags["tree"] == tree.name then + if not tree.root then + die("Configuration error: tree '"..tree.name.."' has no 'root' field.") + end + path.use_tree(dir.normalize(tree.root)) + named = true + break + end + end + if not named then + local fs = require("luarocks.fs") + local root_dir = fs.absolute_name(flags["tree"]) + path.use_tree(root_dir) + end elseif flags["local"] then path.use_tree(cfg.home_tree) else diff --git a/test/testing.sh b/test/testing.sh index 0fa40e53..d3ab3308 100755 --- a/test/testing.sh +++ b/test/testing.sh @@ -59,7 +59,7 @@ mkdir -p "$testing_cache" cat < $testing_dir/testing_config.lua rocks_trees = { "$testing_tree", - "$testing_sys_tree", + { name = "system", root = "$testing_sys_tree" }, } rocks_servers = { "$testing_server" @@ -398,8 +398,8 @@ test_admin_remove() { if [ "$travis" ]; then return; fi; $luarocks_admin --serve fail_admin_remove_missing() { $luarocks_admin --server=testing remove; } fail_deps_mode_invalid_arg() { $luarocks remove luacov --deps-mode; } -test_deps_mode_one() { $luarocks build --tree="$testing_sys_tree" lpeg && $luarocks list && $luarocks build --deps-mode=one --tree="$testing_tree" lxsh && [ `$luarocks_noecho list --tree="$testing_tree" --porcelain lpeg | wc -l` = 1 ]; } -test_deps_mode_order() { $luarocks build --tree="$testing_sys_tree" lpeg && $luarocks build --deps-mode=order --tree="$testing_tree" lxsh && [ `$luarocks_noecho list --tree="$testing_tree" --porcelain lpeg | wc -l` = 0 ]; } +test_deps_mode_one() { $luarocks build --tree="system" lpeg && $luarocks list && $luarocks build --deps-mode=one --tree="$testing_tree" lxsh && [ `$luarocks_noecho list --tree="$testing_tree" --porcelain lpeg | wc -l` = 1 ]; } +test_deps_mode_order() { $luarocks build --tree="system" lpeg && $luarocks build --deps-mode=order --tree="$testing_tree" lxsh && [ `$luarocks_noecho list --tree="$testing_tree" --porcelain lpeg | wc -l` = 0 ]; } test_deps_mode_order_sys() { $luarocks build --tree="$testing_tree" lpeg && $luarocks build --deps-mode=order --tree="$testing_sys_tree" lxsh && [ `$luarocks_noecho list --tree="$testing_sys_tree" --porcelain lpeg | wc -l` = 1 ]; } test_deps_mode_all_sys() { $luarocks build --tree="$testing_tree" lpeg && $luarocks build --deps-mode=all --tree="$testing_sys_tree" lxsh && [ `$luarocks_noecho list --tree="$testing_sys_tree" --porcelain lpeg | wc -l` = 0 ]; } test_deps_mode_none() { $luarocks build --tree="$testing_tree" --deps-mode=none lxsh; [ `$luarocks_noecho list --tree="$testing_tree" --porcelain lpeg | wc -l` = 0 ]; } -- cgit v1.2.3-55-g6feb