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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# File 'lib/anamo/pkgver/thor.rb', line 28
def inspect output = true
rpm_packages = []
status, stdout, stderr = systemu "rpm -qa --qf '%{NAME}abyz3_%{VERSION}abyz3_%{RELEASE}abyz3_%{ARCH}abyz3_%{VENDOR}abyz3_%{RPMTAG_INSTALLTIME}abyz3_%{SIZE}\n'" if status.success?
stdout.split("\n").each do |package|
package = package.split('abyz3_') rpm_packages << {
'n' => package[0], 'v' => package[1], 'r' => package[2], 'a' => package[3], 'v2' => package[4], 'it' => package[5], 's' => package[6], }
end
else
rpm_packages = nil
end
deb_packages = []
status, stdout, strerr = systemu "dpkg-query -W -f='${Package}abyz3_${Version}abyz3_${Architecture}abyz3_${Installed-Size}abyz3_${Homepage}\n'" if status.success?
stdout.split("\n").each do |package|
package = package.split('abyz3_')
deb_packages << {
'n' => package[0], 'v' => package[1], 'a' => package[2], 's' => package[3], 'hp' => package[4], }
end
else
deb_packages = nil
end
gem_packages = []
status, stdout, stderr = systemu "gem list -l"
if status.success?
stdout.split("\n").each do |package|
if package.strip.length > 0 and package[0,1] != '*'
if match = /(.*) \((?:default\: )?(.*)\)/.match(package)
gem_packages << {
'n' => match[1],
'v' => match[2]
}
end
end
end
else
gem_packages = nil
end
npm_packages = nil
status, stdout, strerr = systemu "npm list --global --json"
if status.success?
npm_packages = MultiJson.load(stdout)
end
pip_packages = []
status, stdout, strerr = systemu "pip list"
if status.success?
stdout.split("\n").each do |l|
match_data = /(.*) \((.*)\)/.match(l)
pip_packages << {
'n' => match_data[1],
'v' => match_data[2]
} if match_data
end
else
pip_packages = nil
end
data = {
'gem_packages' => gem_packages
}
data['rpm_packages'] = rpm_packages if rpm_packages
data['deb_packages'] = deb_packages if deb_packages
data['npm_packages'] = npm_packages if npm_packages
data['pip_packages'] = pip_packages if pip_packages
puts data if output
data
end
|