Software / code / prosody
Comparison
prosodyctl @ 10164:d145eb696475
prosodyctl: The install command now performs its job at a dedicated folder for custom plugins
| author | João Duarte <jvsDuarte08@gmail.com> |
|---|---|
| date | Wed, 24 Jul 2019 10:43:28 -0700 |
| parent | 10162:7a4c15f75deb |
| child | 10165:8fd6fb34d9c5 |
comparison
equal
deleted
inserted
replaced
| 10163:661feb336e18 | 10164:d145eb696475 |
|---|---|
| 88 function commands.install(arg) | 88 function commands.install(arg) |
| 89 if arg[1] == "--help" then | 89 if arg[1] == "--help" then |
| 90 show_usage([[make]], [[Installs a prosody/luarocks plugin]]); | 90 show_usage([[make]], [[Installs a prosody/luarocks plugin]]); |
| 91 return 1; | 91 return 1; |
| 92 end | 92 end |
| 93 local installer_plugin_path | |
| 94 -- I'm considering that we are using just one path to custom plugins, and it is the first in prosody.paths.plugins, for now | |
| 95 for path in prosody.paths.plugins:gmatch("[^;]+") do | |
| 96 installer_plugin_path = path | |
| 97 break | |
| 98 end | |
| 93 -- I'm considering this optional flag comes first | 99 -- I'm considering this optional flag comes first |
| 94 local flag = "--tree=" | 100 local flag = "--tree=" |
| 95 if arg[1] and arg[1]:sub(1, #flag) == flag then | 101 if arg[1] and arg[1]:sub(1, #flag) == flag then |
| 96 local dir = arg[1]:match("=(.+)$") | 102 local dir = arg[1]:match("=(.+)$") |
| 97 print("Installing module "..arg[2].." at "..dir) | 103 print("Installing module "..arg[2].." at "..dir) |
| 98 os.execute("luarocks --tree='"..dir.."' --server='http://localhost/' install "..arg[2]) | 104 os.execute("luarocks --tree='"..dir.."' --server='http://localhost/' install "..arg[2]) |
| 99 show_module_configuration_help(arg[2]); | 105 show_module_configuration_help(arg[2]); |
| 100 return 0; | 106 return 0; |
| 101 else | 107 else |
| 102 print("Installing module "..arg[1].." at "..prosody.paths.plugins) | 108 print("Installing module "..arg[1].." at "..installer_plugin_path) |
| 103 -- I've build a local server to upload some new rockspecs, like mod_smacks'. We can replace this server by one from | 109 -- I've build a local server to upload some new rockspecs, like mod_smacks'. We can replace this server by one from |
| 104 -- prosody's, where we can oficially disbrute rocks/rockspecs for all modules | 110 -- prosody's, where we can oficially disbrute rocks/rockspecs for all modules |
| 105 os.execute("luarocks --tree='"..prosody.paths.plugins.."' --server='http://localhost/' install "..arg[1]) | 111 os.execute("luarocks --tree='"..installer_plugin_path.."' --server='http://localhost/' install "..arg[1]) |
| 106 show_module_configuration_help(arg[1]); | 112 show_module_configuration_help(arg[1]); |
| 107 return 0; | 113 return 0; |
| 108 end | 114 end |
| 109 end | 115 end |
| 110 | 116 |