summaryrefslogtreecommitdiffstats
path: root/modules/ports.rb
diff options
context:
space:
mode:
Diffstat (limited to 'modules/ports.rb')
-rw-r--r--modules/ports.rb60
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