diff options
Diffstat (limited to 'modules/ports.rb')
-rw-r--r-- | modules/ports.rb | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/modules/ports.rb b/modules/ports.rb new file mode 100644 index 0000000..34c1edc --- /dev/null +++ b/modules/ports.rb @@ -0,0 +1,60 @@ +def module_ports(msg_body, sender_nick, config) + def ports(cmd) + case cmd + when /^maj(|\s)$/ + answer= 'Usage: "!ports maj all" ; "!ports maj (repo)' + when /^maj/ + if cmd =~ /^maj all(|\s)$/ + answer= `cd modules/ports && ./ports -u`.chomp + else + repo=cmd.gsub("maj","") + answer= `cd modules/ports && ./ports -u #{repo}`.chomp + end + when /^query(|\s)$/ + answer='Usage: "!ports query (search string)"' + when /^query\s[a-z0-9_-]*$/i + package=cmd.gsub(/^query\s/,"") + repo=[] + for driver in `ls modules/ports/drivers/` + suffix=`basename #{driver}` + for file in `ls modules/ports/*.#{suffix}`.chomp + repo << `basename #{file} .#{suffix}`.chomp + end + end + pkg={} + for cur_repo in repo + pkg[cur_repo] = Array.new() + for port in `find modules/ports/#{cur_repo} -maxdepth 1 -name "*#{package}*"`.chomp + begin + name = `basename #{port}`.chomp + pkgfile=`cat modules/ports/#{repo}/#{name}/Pkgfile` + pkg[cur_repo] << {"name" => name, + "version" => pkgfile.grep(/version=/)[0].gsub("version=","").chomp, + "release" => pkgfile.grep(/release=/)[0].gsub("release=","").chomp, + "packager" => pkgfile.grep(/packager=/)[0].gsub("packager=","").chomp, + "maintainer" => pkgfile.grep(/maintainer=/)[0].gsub("maintainer=","").chomp + } + rescue + end + end + end + list_port="" + list_repo="" + for repo in pkg + for port in repo[1] + list_port="Name: #{port['name']} | Version: #{port['version']} | Release: #{port['release']} | Packager: #{port['packager']} | Maintainer: #{port['maintainer']}" + "\n" + list_port + end + list_repo= "Dans " + repo[0] + " => " + list_port.chomp + "\n" + list_repo + end + return list_repo.chomp + end + return answer + end + + if msg_body =~ /^!ports (maj|query)/ + answer = ports(msg_body.gsub("!ports ","")) + return answer + elsif /^!ports/ + answer = '"!ports maj" ; "!ports query"' + end +end |