aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/luarocks/core/util.lua11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/luarocks/core/util.lua b/src/luarocks/core/util.lua
index 5f5c0fe1..8789851c 100644
--- a/src/luarocks/core/util.lua
+++ b/src/luarocks/core/util.lua
@@ -12,10 +12,17 @@ local require = nil
12-- May be used to read more, passing, for instance, "*a". 12-- May be used to read more, passing, for instance, "*a".
13-- @return string: the output of the program. 13-- @return string: the output of the program.
14function util.popen_read(cmd, spec) 14function util.popen_read(cmd, spec)
15 local fd = io.popen(cmd) 15 local tmpfile = os.tmpname()
16 os.execute(cmd .. " > " .. tmpfile)
17 local fd = io.open(tmpfile, "rb")
18 if not fd then
19 os.remove(tmpfile)
20 return ""
21 end
16 local out = fd:read(spec or "*l") 22 local out = fd:read(spec or "*l")
17 fd:close() 23 fd:close()
18 return out 24 os.remove(tmpfile)
25 return out or ""
19end 26end
20 27
21--- Create a new shallow copy of a table: a new table with 28--- Create a new shallow copy of a table: a new table with