Fixed Plugin Manager raising an error when optional dependency of Plugin is not installed (#119)

This commit is contained in:
Golisopod-User
2021-06-21 03:41:18 +05:30
committed by GitHub
parent 657ed7944d
commit 3c3802b80b

View File

@@ -576,11 +576,17 @@ module PluginManager
next if !plugins[o] || !plugins[o][:dependencies] next if !plugins[o] || !plugins[o][:dependencies]
# go through all dependencies # go through all dependencies
for dname in plugins[o][:dependencies] for dname in plugins[o][:dependencies]
optional = false
# clean the name to a simple string # clean the name to a simple string
dname = dname[0] if dname.is_a?(Array) && dname.length == 2 if dname.is_a?(Array)
dname = dname[1] if dname.is_a?(Array) && dname.length == 3 optional = [:optional,:optional_exact].include?(dname[0])
dname = dname[dname.length - 2]
end
# catch missing dependency # catch missing dependency
self.error("Plugin '#{o}' requires plugin '#{dname}' to work properly.") if !order.include?(dname) if !order.include?(dname)
next if optional
self.error("Plugin '#{o}' requires plugin '#{dname}' to work properly.")
end
# skip if already sorted # skip if already sorted
next if order.index(dname) > order.index(o) next if order.index(dname) > order.index(o)
# catch looping dependency issue # catch looping dependency issue