aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2011-08-09 01:15:34 -0300
committerHisham Muhammad <hisham@gobolinux.org>2011-08-09 01:15:34 -0300
commit66c852785b3dc9bc05480619e25b510b0fd4c2f4 (patch)
tree95b953a94b97e79193822feab5095688bbac4beb
parent25de237619d97b5c9ff04a846b20738d11162596 (diff)
downloadluarocks-66c852785b3dc9bc05480619e25b510b0fd4c2f4.tar.gz
luarocks-66c852785b3dc9bc05480619e25b510b0fd4c2f4.tar.bz2
luarocks-66c852785b3dc9bc05480619e25b510b0fd4c2f4.zip
current_dir() should not assume that the PWD environment variable is valid (closes #31)
-rw-r--r--src/luarocks/fs/unix/tools.lua9
-rw-r--r--src/luarocks/fs/win32/tools.lua9
2 files changed, 6 insertions, 12 deletions
diff --git a/src/luarocks/fs/unix/tools.lua b/src/luarocks/fs/unix/tools.lua
index f63efc41..9cd4ca1c 100644
--- a/src/luarocks/fs/unix/tools.lua
+++ b/src/luarocks/fs/unix/tools.lua
@@ -26,12 +26,9 @@ end
26-- Uses the module's internal dir stack. 26-- Uses the module's internal dir stack.
27-- @return string: the absolute pathname of the current directory. 27-- @return string: the absolute pathname of the current directory.
28function current_dir() 28function current_dir()
29 local current = os.getenv("PWD") 29 local pipe = io.popen("pwd")
30 if not current then 30 local current = pipe:read("*l")
31 local pipe = io.popen("pwd") 31 pipe:close()
32 current = pipe:read("*l")
33 pipe:close()
34 end
35 for _, d in ipairs(dir_stack) do 32 for _, d in ipairs(dir_stack) do
36 current = fs.absolute_name(d, current) 33 current = fs.absolute_name(d, current)
37 end 34 end
diff --git a/src/luarocks/fs/win32/tools.lua b/src/luarocks/fs/win32/tools.lua
index dcbd5701..a3b7cdd0 100644
--- a/src/luarocks/fs/win32/tools.lua
+++ b/src/luarocks/fs/win32/tools.lua
@@ -43,12 +43,9 @@ end
43-- Uses the module's internal dir stack. 43-- Uses the module's internal dir stack.
44-- @return string: the absolute pathname of the current directory. 44-- @return string: the absolute pathname of the current directory.
45function current_dir() 45function current_dir()
46 local current = os.getenv("PWD") 46 local pipe = io.popen("pwd")
47 if not current then 47 local current = pipe:read("*l")
48 local pipe = io.popen("pwd") 48 pipe:close()
49 current = pipe:read("*l")
50 pipe:close()
51 end
52 for _, d in ipairs(dir_stack) do 49 for _, d in ipairs(dir_stack) do
53 current = fs.absolute_name(d, current) 50 current = fs.absolute_name(d, current)
54 end 51 end