From c6e3556c0a883831dde10858b32ce21cacd1bd0e Mon Sep 17 00:00:00 2001 From: Ignacio BurgueƱo Date: Tue, 30 Jun 2015 12:33:36 -0300 Subject: Strip known extensions --- src/luarocks/fetch.lua | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/luarocks/fetch.lua b/src/luarocks/fetch.lua index 686aadcd..e92aeddf 100644 --- a/src/luarocks/fetch.lua +++ b/src/luarocks/fetch.lua @@ -170,8 +170,13 @@ function fetch.fetch_and_unpack_rock(rock_file, dest) end function fetch.url_to_base_dir(url) + -- for extensions like foo.tar.gz, "gz" is stripped first + local known_exts = {} + for _, ext in ipairs{"zip", "git", "tgz", "tar", "gz", "bz2"} do + known_exts[ext] = "" + end local base = dir.base_name(url) - return base:gsub("%.[^.]*$", ""):gsub("%.tar$", "") + return (base:gsub("%.([^.]*)$", known_exts):gsub("%.tar", "")) end --- Back-end function that actually loads the local rockspec. -- cgit v1.2.3-55-g6feb