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