|
|
|
@ -9,7 +9,7 @@ class EmptyWorker < Kernel::ModuleCoreWorker
|
|
|
|
|
NAME: MODULE_ID,
|
|
|
|
|
DESCR: "Module for managing of php modules for php's from brepo repository",
|
|
|
|
|
REQ: "",
|
|
|
|
|
CONF: "",
|
|
|
|
|
CONF: "yes",
|
|
|
|
|
}
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -22,6 +22,84 @@ class EmptyWorker < Kernel::ModuleCoreWorker
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def get_list_of_installed_php
|
|
|
|
|
php_list = []
|
|
|
|
|
lst = Dir["/opt/brepo/php*/etc/php.ini"]
|
|
|
|
|
if lst.length.positive?
|
|
|
|
|
php_list = lst.select do |item|
|
|
|
|
|
%r{/opt/brepo/php\d+/etc/php\.ini} =~ item
|
|
|
|
|
end.map do |item|
|
|
|
|
|
res = item.match %r{/opt/brepo/php(?<ver>\d+)/etc/php\.ini}
|
|
|
|
|
res[:ver]
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
php_list
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def get_list_of_installed_php_modules(php_ver)
|
|
|
|
|
php_modules = {}
|
|
|
|
|
php_list = get_list_of_installed_php
|
|
|
|
|
if php_list.include? php_ver
|
|
|
|
|
lst = Dir["/opt/brepo/php#{php_ver}/etc/mod-installed/*.ini"]
|
|
|
|
|
php_list_m = lst.map { |item| File.basename(item, ".ini") }.select { |item| item.strip != "" }
|
|
|
|
|
lst_enabled = Dir["/opt/brepo/php#{php_ver}/etc/php.d/*.ini"]
|
|
|
|
|
php_list_i = {}
|
|
|
|
|
lst_enabled.each do |item|
|
|
|
|
|
fname = File.basename(item, ".ini")
|
|
|
|
|
if fname.strip != ""
|
|
|
|
|
if File.symlink? item
|
|
|
|
|
fname_n = File.readlink(item)
|
|
|
|
|
fname_n = File.basename(fname_n, ".ini")
|
|
|
|
|
php_list_i[fname_n] = fname unless fname_n.strip == ""
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
php_list_m.each do |item|
|
|
|
|
|
php_modules[item] = "disabled"
|
|
|
|
|
php_modules[item] = php_list_i[item] unless php_list_i[item].nil?
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
php_modules
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def command(args)
|
|
|
|
|
return log_return("Not enough arguments. Needed command") if args.length < 1
|
|
|
|
|
|
|
|
|
|
m_command = args[0].strip
|
|
|
|
|
case m_command
|
|
|
|
|
when "php_list"
|
|
|
|
|
result = get_list_of_installed_php.map { |item| { "PHPVER" => item } }
|
|
|
|
|
format = (args[1].nil? ? "shell" : args[1].strip)
|
|
|
|
|
hestia_print_array_of_hashes(result, format, "PHPVER")
|
|
|
|
|
ACTION_OK
|
|
|
|
|
when "php_modules"
|
|
|
|
|
vers = args[1]
|
|
|
|
|
if vers.nil?
|
|
|
|
|
log_return("Verssion should be specified. #{args}")
|
|
|
|
|
else
|
|
|
|
|
vers = vers.strip
|
|
|
|
|
modules_list = get_list_of_installed_php_modules(vers)
|
|
|
|
|
m_keys = modules_list.keys.sort
|
|
|
|
|
result = []
|
|
|
|
|
m_keys.each do |kk|
|
|
|
|
|
tmp_hash = {}
|
|
|
|
|
tmp_hash["PHPVER"] = vers
|
|
|
|
|
tmp_hash["MODNAME"] = kk
|
|
|
|
|
tmp_hash["STATE"] = modules_list[kk]
|
|
|
|
|
result << tmp_hash
|
|
|
|
|
end
|
|
|
|
|
hestia_print_array_of_hashes(result, format, "PHPVER,MODNAME,STATE")
|
|
|
|
|
ACTION_OK
|
|
|
|
|
end
|
|
|
|
|
when "help"
|
|
|
|
|
puts "#{$0} php_brepo_modules COMMAND [OPTIONS] [json|csv|plain]"
|
|
|
|
|
puts "COMMANDS:"
|
|
|
|
|
puts " php_list - list all local php installed"
|
|
|
|
|
puts " php_modules [php_ver] - list available php module"
|
|
|
|
|
puts " help - help"
|
|
|
|
|
ACTION_OK
|
|
|
|
|
else
|
|
|
|
|
log_return("Unknown command. #{args}")
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
implements IPluginInterface
|
|
|
|
|