prosodyctl: The 'install' command can now recognize the flag '--tree'
authorJoão Duarte <jvsDuarte08@gmail.com>
Wed, 17 Jul 2019 03:45:26 -0700
changeset 10147 a099bff1842d
parent 10146 1e192e8d4e9d
child 10148 48a62e2e2a63
prosodyctl: The 'install' command can now recognize the flag '--tree'
prosodyctl
--- a/prosodyctl	Wed Jul 17 03:31:02 2019 -0700
+++ b/prosodyctl	Wed Jul 17 03:45:26 2019 -0700
@@ -158,9 +158,20 @@
     show_usage([[make]], [[Installs a rockspec/rock from a specified server]]);
     return 1
   end
-  print("Installing module "..arg[1].." locally, from luarocks repo")
-  os.execute("luarocks --tree='./plugins' install "..arg[1])
-  return 0
+  -- Need to think about the case with many flags
+  local flag = "--tree="
+  -- I'm considering the flag is the first, but there can be many flags
+  if arg[1] and arg[1]:sub(1, #flag) == flag then
+    local dir = arg[1]:match("=(.+)$")
+    print("Installing module "..arg[2].." at "..dir..", from luarocks repo")
+    -- These extra double brackets allow us to correctly process names with spaces
+    os.execute("luarocks install --tree='"..dir.."' "..arg[2])
+    return 0;
+  else
+    print("Installing module "..arg[1].." locally, from luarocks repo")
+    os.execute("luarocks --tree='"..prosody.paths.plugins.."' install "..arg[1])
+    return 0
+  end
 end
 
 function commands.list(arg)