diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/luarocks/fs/lua.lua | 2 | ||||
-rw-r--r-- | src/luarocks/fs/unix.lua | 8 | ||||
-rw-r--r-- | src/luarocks/fs/unix/tools.lua | 18 |
3 files changed, 19 insertions, 9 deletions
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua index 14bf0369..145a60de 100644 --- a/src/luarocks/fs/lua.lua +++ b/src/luarocks/fs/lua.lua | |||
@@ -1045,7 +1045,7 @@ function fs_lua.current_user() | |||
1045 | end | 1045 | end |
1046 | 1046 | ||
1047 | function fs_lua.is_superuser() | 1047 | function fs_lua.is_superuser() |
1048 | return false | 1048 | return posix.geteuid() == 0 |
1049 | end | 1049 | end |
1050 | 1050 | ||
1051 | -- This call is not available on all systems, see #677 | 1051 | -- This call is not available on all systems, see #677 |
diff --git a/src/luarocks/fs/unix.lua b/src/luarocks/fs/unix.lua index 28189089..61569e30 100644 --- a/src/luarocks/fs/unix.lua +++ b/src/luarocks/fs/unix.lua | |||
@@ -176,14 +176,6 @@ function unix.tmpname() | |||
176 | return os.tmpname() | 176 | return os.tmpname() |
177 | end | 177 | end |
178 | 178 | ||
179 | function unix.current_user() | ||
180 | return os.getenv("USER") | ||
181 | end | ||
182 | |||
183 | function unix.is_superuser() | ||
184 | return os.getenv("USER") == "root" | ||
185 | end | ||
186 | |||
187 | function unix.export_cmd(var, val) | 179 | function unix.export_cmd(var, val) |
188 | return ("export %s='%s'"):format(var, val) | 180 | return ("export %s='%s'"):format(var, val) |
189 | end | 181 | end |
diff --git a/src/luarocks/fs/unix/tools.lua b/src/luarocks/fs/unix/tools.lua index f0c0a05c..b7fd4de5 100644 --- a/src/luarocks/fs/unix/tools.lua +++ b/src/luarocks/fs/unix/tools.lua | |||
@@ -297,4 +297,22 @@ function tools.is_file(file) | |||
297 | return fs.execute(vars.TEST, "-f", file) | 297 | return fs.execute(vars.TEST, "-f", file) |
298 | end | 298 | end |
299 | 299 | ||
300 | function tools.current_user() | ||
301 | local user = os.getenv("USER") | ||
302 | if user then | ||
303 | return user | ||
304 | end | ||
305 | local pd = io.popen("whoami", "r") | ||
306 | if not pd then | ||
307 | return "" | ||
308 | end | ||
309 | user = pd:read("*l") | ||
310 | pd:close() | ||
311 | return user | ||
312 | end | ||
313 | |||
314 | function tools.is_superuser() | ||
315 | return fs.current_user() == "root" | ||
316 | end | ||
317 | |||
300 | return tools | 318 | return tools |