summaryrefslogtreecommitdiffstats
path: root/modules/ports.rb
blob: 34c1edc7b087465b6724ddcfff4d167a0f116ad6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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