From c3cc9cd9cfd221ff32347f8ecdf790f4ffd7b42a Mon Sep 17 00:00:00 2001
From: Hisham Muhammad <hisham@gobolinux.org>
Date: Tue, 16 Oct 2012 21:37:13 -0300
Subject: Remove dead code

---
 src/luarocks/repos.lua | 16 ----------------
 1 file changed, 16 deletions(-)

(limited to 'src')

diff --git a/src/luarocks/repos.lua b/src/luarocks/repos.lua
index 30c61f55..27cdc67d 100644
--- a/src/luarocks/repos.lua
+++ b/src/luarocks/repos.lua
@@ -53,22 +53,6 @@ local function recurse_rock_manifest_tree(file_tree, action)
    return do_recurse_rock_manifest_tree(file_tree, "", "")
 end
 
-local function store_package_data(result, name, sub, prefix)
-   assert(type(result) == "table")
-   assert(type(name) == "string")
-   assert(type(sub) == "table" or type(sub) == "string")
-   assert(type(prefix) == "string")
-
-   if type(sub) == "table" then
-      for sname, ssub in pairs(sub) do
-         store_package_data(result, sname, ssub, prefix..name.."/")
-      end
-   elseif type(sub) == "string" then
-      local pathname = prefix..name
-      result[path.path_to_module(pathname)] = pathname
-   end
-end
-
 local function store_package_data(result, name, file_tree)
    if not file_tree then return end
    return recurse_rock_manifest_tree(file_tree, 
-- 
cgit v1.2.3-55-g6feb


From 0353599bb573254b4a6125a61ff5353b93d78ba3 Mon Sep 17 00:00:00 2001
From: Hisham Muhammad <hisham@gobolinux.org>
Date: Tue, 16 Oct 2012 22:30:52 -0300
Subject: Remove dead code: queries in this function never happen with
 exact_name == false.

---
 src/luarocks/search.lua | 7 -------
 1 file changed, 7 deletions(-)

(limited to 'src')

diff --git a/src/luarocks/search.lua b/src/luarocks/search.lua
index ec0fa69c..96c6b876 100644
--- a/src/luarocks/search.lua
+++ b/src/luarocks/search.lua
@@ -349,13 +349,6 @@ function act_on_src_or_rockspec(action, name, version, ...)
    local results, err = find_suitable_rock(query)
    if type(results) == "string" then
       return action(results, ...)
-   elseif type(results) == "table" and next(results) then
-      util.printout("Multiple search results were returned.")
-      util.printout()
-      util.printout("Search results:")
-      util.printout("---------------")
-      print_results(results)
-      return nil, "Please narrow your query."
    else
       return nil, "Could not find a result named "..name..(version and " "..version or "").."."
    end
-- 
cgit v1.2.3-55-g6feb


From e51efb721935e959b33c6ec9884d2ecbe418fcb2 Mon Sep 17 00:00:00 2001
From: Hisham Muhammad <hisham@gobolinux.org>
Date: Tue, 16 Oct 2012 22:37:39 -0300
Subject: Remove dead code: search_repos always returns a table.

---
 src/luarocks/download.lua |  2 +-
 src/luarocks/search.lua   | 11 ++---------
 2 files changed, 3 insertions(+), 10 deletions(-)

(limited to 'src')

diff --git a/src/luarocks/download.lua b/src/luarocks/download.lua
index 474e4d39..ae835bf2 100644
--- a/src/luarocks/download.lua
+++ b/src/luarocks/download.lua
@@ -24,7 +24,7 @@ function download(arch, name, version, all)
    if arch then query.arch = arch end
    if all then
       if name == "" then query.exact_name = false end
-      results, err = search.search_repos(query)
+      results = search.search_repos(query)
    else
       results, err = search.find_suitable_rock(query)
    end
diff --git a/src/luarocks/search.lua b/src/luarocks/search.lua
index 96c6b876..692004ae 100644
--- a/src/luarocks/search.lua
+++ b/src/luarocks/search.lua
@@ -185,10 +185,9 @@ end
 
 --- Search on all configured rocks servers.
 -- @param query table: A dependency query.
--- @return table or (nil, string): A table where keys are package names
+-- @return table: A table where keys are package names
 -- and values are tables matching version strings to an array of
 -- rocks servers; if no results are found, an empty table is returned.
--- In case of errors, nil and and error message are returned.
 function search_repos(query)
    assert(type(query) == "table")
 
@@ -269,10 +268,7 @@ end
 function find_suitable_rock(query)
    assert(type(query) == "table")
    
-   local results, err = search_repos(query)
-   if not results then
-      return nil, err
-   end
+   local results = search_repos(query)
    local first = next(results)
    if not first then
       return nil, "No results matching query were found."
@@ -373,9 +369,6 @@ function run(...)
    local query = make_query(name:lower(), version)
    query.exact_name = false
    local results, err = search_repos(query)
-   if not results then
-      return nil, err
-   end
    util.printout()
    util.printout("Search results:")
    util.printout("===============")
-- 
cgit v1.2.3-55-g6feb


From 5c17b07c4d70d459d512cb10db233bbf847a44c1 Mon Sep 17 00:00:00 2001
From: Hisham Muhammad <hisham@gobolinux.org>
Date: Tue, 16 Oct 2012 23:29:19 -0300
Subject: Report LuaRocks user-agent when using LuaSocket as well. Report also
 architecture and downloader tool, so we gather some general stats.

---
 src/luarocks/cfg.lua            |  3 ++-
 src/luarocks/fs/lua.lua         | 10 +++++++++-
 src/luarocks/fs/unix/tools.lua  |  4 ++--
 src/luarocks/fs/win32/tools.lua |  4 ++--
 4 files changed, 15 insertions(+), 6 deletions(-)

(limited to 'src')

diff --git a/src/luarocks/cfg.lua b/src/luarocks/cfg.lua
index 00c4aea0..d4222998 100644
--- a/src/luarocks/cfg.lua
+++ b/src/luarocks/cfg.lua
@@ -26,7 +26,6 @@ _M.site_config = site_config
 
 lua_version = _VERSION:sub(5)
 program_version = "2.0.11"
-user_agent = "LuaRocks/"..program_version
 
 local persist = require("luarocks.persist")
 
@@ -438,6 +437,8 @@ function which_config()
    return sys_config_file, sys_config_ok, home_config_file, home_config_ok
 end
 
+user_agent = "LuaRocks/"..program_version.." "..arch
+
 --- Check if platform was detected
 -- @param query string: The platform name to check.
 -- @return boolean: true if LuaRocks is currently running on queried platform.
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua
index 24b05a59..00c576dc 100644
--- a/src/luarocks/fs/lua.lua
+++ b/src/luarocks/fs/lua.lua
@@ -501,7 +501,15 @@ local function http_request(url, http, loop_control)
       proxy = "http://" .. proxy
    end
    
-   local res, status, headers, err = http.request { url = url, proxy = proxy, redirect = false, sink = ltn12.sink.table(result) }
+   local res, status, headers, err = http.request {
+      url = url,
+      proxy = proxy,
+      redirect = false,
+      sink = ltn12.sink.table(result),
+      headers = {
+         ["user-agent"] = cfg.user_agent.." via LuaSocket"
+      },
+   }
    if not res then
       return nil, status
    elseif status == 301 or status == 302 then
diff --git a/src/luarocks/fs/unix/tools.lua b/src/luarocks/fs/unix/tools.lua
index 7e29fc0a..3b853be7 100644
--- a/src/luarocks/fs/unix/tools.lua
+++ b/src/luarocks/fs/unix/tools.lua
@@ -237,7 +237,7 @@ function download(url, filename)
    assert(type(filename) == "string" or not filename)
 
    if cfg.downloader == "wget" then
-      local wget_cmd = vars.WGET.." --no-check-certificate --no-cache --user-agent="..cfg.user_agent.." --quiet --continue "
+      local wget_cmd = vars.WGET.." --no-check-certificate --no-cache --user-agent='"..cfg.user_agent.." via wget' --quiet --continue "
       if filename then
          return fs.execute(wget_cmd.." --output-document ", filename, url)
       else
@@ -245,7 +245,7 @@ function download(url, filename)
       end
    elseif cfg.downloader == "curl" then
       filename = filename or dir.base_name(url)
-      return fs.execute_string(vars.CURL.." -L --user-agent "..cfg.user_agent.." "..fs.Q(url).." 2> /dev/null 1> "..fs.Q(filename))
+      return fs.execute_string(vars.CURL.." -L --user-agent '"..cfg.user_agent.." via curl' "..fs.Q(url).." 2> /dev/null 1> "..fs.Q(filename))
    end
 end
 
diff --git a/src/luarocks/fs/win32/tools.lua b/src/luarocks/fs/win32/tools.lua
index 48eca64b..3e7ebd32 100644
--- a/src/luarocks/fs/win32/tools.lua
+++ b/src/luarocks/fs/win32/tools.lua
@@ -246,7 +246,7 @@ function download(url, filename)
    assert(type(filename) == "string" or not filename)
 
    if cfg.downloader == "wget" then
-      local wget_cmd = vars.WGET.." --no-check-certificate --no-cache --user-agent="..cfg.user_agent.." --quiet --continue "
+      local wget_cmd = vars.WGET.." --no-check-certificate --no-cache --user-agent=\""..cfg.user_agent.." via wget\" --quiet --continue "
       if filename then
          return fs.execute(wget_cmd.." --output-document ", filename, url)
       else
@@ -254,7 +254,7 @@ function download(url, filename)
       end
    elseif cfg.downloader == "curl" then
       filename = filename or dir.base_name(url)
-      return fs.execute_string(vars.CURL.." -L --user-agent "..cfg.user_agent.." "..fs.Q(url).." 2> NUL 1> "..fs.Q(filename))
+      return fs.execute_string(vars.CURL.." -L --user-agent \""..cfg.user_agent.." via curl\" "..fs.Q(url).." 2> NUL 1> "..fs.Q(filename))
    end
 end
 
-- 
cgit v1.2.3-55-g6feb