From 3ad2f62adce549504375b6b7d8fb03190297ae6b Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 11 Oct 2011 00:45:35 -0300 Subject: New flag: --only-sources-from. Restrict domains from which sources can be downloaded. --- src/luarocks/command_line.lua | 4 ++++ src/luarocks/fetch.lua | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/src/luarocks/command_line.lua b/src/luarocks/command_line.lua index dfb28e99..41c1c278 100644 --- a/src/luarocks/command_line.lua +++ b/src/luarocks/command_line.lua @@ -130,6 +130,10 @@ function run_command(...) end cfg.rocks_servers = { flags["only-from"] } end + + if flags["only-sources-from"] then + cfg.only_sources_from = flags["only-sources-from"] + end if command ~= "help" then for k, v in pairs(cmdline_vars) do diff --git a/src/luarocks/fetch.lua b/src/luarocks/fetch.lua index 3f96e523..874dc33f 100644 --- a/src/luarocks/fetch.lua +++ b/src/luarocks/fetch.lua @@ -9,6 +9,7 @@ local path = require("luarocks.path") local deps = require("luarocks.deps") local persist = require("luarocks.persist") local util = require("luarocks.util") +local cfg = require("luarocks.cfg") --- Fetch a local or remote file. -- Make a remote or local URL/pathname local, fetching the file if necessary. @@ -307,5 +308,15 @@ function fetch_sources(rockspec, extract, dest_dir) end end + if cfg.only_sources_from + and rockspec.source.pathname + and #rockspec.source.pathname > 0 then + if #cfg.only_sources_from == 0 then + return nil, "Can't download "..rockspec.source.url.." -- download from remote servers disabled" + elseif not rockspec.source.pathname:match("^"..cfg.only_sources_from) then + return nil, "Can't download "..rockspec.source.url.." -- only downloading from "..cfg.only_sources_from + end + end + return proto.get_sources(rockspec, extract, dest_dir) end -- cgit v1.2.3-55-g6feb