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
|