diff options
author | piernov <piernov@piernov.servegame.org> | 2011-06-02 15:08:03 +0200 |
---|---|---|
committer | piernov <piernov@piernov.servegame.org> | 2011-06-02 15:08:03 +0200 |
commit | 762f732c33432c9a6f488dd5618e19b26fe47609 (patch) | |
tree | 878104dccdc4389a1f523472f2f4e08a24e99777 /modules/ports.rb | |
parent | ec823fb412e4574e4d2dcd4c0f58dff01ee549e6 (diff) | |
download | rbjbbot-master.tar.gz rbjbbot-master.tar.bz2 rbjbbot-master.tar.xz rbjbbot-master.zip |
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 |