slack-utils 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/bin/slt +3 -2
- data/lib/slackware/args.rb +5 -0
- data/lib/slackware/changelog.rb +92 -49
- data/lib/slackware/changelog/rss.rb +12 -19
- data/lib/slackware/log.rb +3 -3
- data/lib/slackware/package.rb +4 -1
- data/lib/slackware/repo.rb +15 -10
- data/lib/slackware/system.rb +0 -1
- data/lib/slackware/utils.rb +15 -13
- data/lib/slackware/version.rb +1 -1
- metadata +33 -29
data/bin/slt
CHANGED
@@ -37,7 +37,7 @@ Usage:
|
|
37
37
|
EOS
|
38
38
|
# This is all the flags we want to use, from Slackware::Args
|
39
39
|
option_flags = [:color, :epoch, :case_insensitive, :pkg_name, :pkg_version,
|
40
|
-
:debug, :pkg_arch, :pkg_build, :pkg_tag]
|
40
|
+
:reverse, :debug, :pkg_arch, :pkg_build, :pkg_tag]
|
41
41
|
|
42
42
|
slog = Slackware::Log.instance
|
43
43
|
slog.level = Slackware::Log::WARN
|
@@ -46,6 +46,7 @@ options = Slackware::Args.parse(ARGV, option_flags, option_banner)
|
|
46
46
|
|
47
47
|
# update level if specified
|
48
48
|
slog.level = Slackware::Log::DEBUG if options[:debug]
|
49
|
+
slog.debug($PROGRAM_NAME) { "option_flags: #{option_flags} " }
|
49
50
|
slog.debug($PROGRAM_NAME) {"options: %s" % options}
|
50
51
|
|
51
52
|
# handing through that we are gathering times
|
@@ -56,7 +57,7 @@ if (ARGV.count > 0)
|
|
56
57
|
end
|
57
58
|
|
58
59
|
begin
|
59
|
-
print_packages_times(build_packages(options, ARGV), options[:epoch])
|
60
|
+
print_packages_times(build_packages(options, ARGV), options[:epoch], options[:reverse])
|
60
61
|
rescue Interrupt
|
61
62
|
exit 0
|
62
63
|
rescue Exception => e
|
data/lib/slackware/args.rb
CHANGED
@@ -38,6 +38,11 @@ module Slackware
|
|
38
38
|
options[:color] = o
|
39
39
|
end
|
40
40
|
end
|
41
|
+
if flags.include?(:reverse)
|
42
|
+
opts.on("-r", "--reverse", "Reverse the output") do |o|
|
43
|
+
options[:reverse] = o
|
44
|
+
end
|
45
|
+
end
|
41
46
|
if flags.include?(:epoch)
|
42
47
|
opts.on("-e", "--epoch", "Print the time stamp in seconds since 1970-01-01 00:00:00 UTC ") do |o|
|
43
48
|
options[:epoch] = o
|
data/lib/slackware/changelog.rb
CHANGED
@@ -23,6 +23,7 @@
|
|
23
23
|
require 'slackware/package'
|
24
24
|
require 'date'
|
25
25
|
require 'time'
|
26
|
+
require 'stringio'
|
26
27
|
|
27
28
|
module Slackware
|
28
29
|
# The class for parsing a Slackware standard ChangeLog.txt
|
@@ -36,10 +37,10 @@ module Slackware
|
|
36
37
|
# Compiling a fat regex to find the date entries
|
37
38
|
re_daynames = Regexp.new(ABBR_DAYNAMES.join('|'))
|
38
39
|
re_monthnames = Regexp.new(ABBR_MONTHNAMES.join('|'))
|
39
|
-
RE_DATE =
|
40
|
+
RE_DATE = /^(#{re_daynames}\s+#{re_monthnames}\s+\d+\s+\d{2}:\d{2}:\d{2}\s\w+\s+\d+)$/
|
40
41
|
|
41
42
|
# This break has been the same as long as I can find
|
42
|
-
RE_CHANGELOG_BREAK =
|
43
|
+
RE_CHANGELOG_BREAK = /^\+--------------------------\+$/
|
43
44
|
|
44
45
|
# The regular entry, accounting for usb-and-pxe-installers directory,
|
45
46
|
# and notes after the action
|
@@ -64,14 +65,20 @@ module Slackware
|
|
64
65
|
# regarding the updates
|
65
66
|
class Update
|
66
67
|
# FIXME this class needs more proper value setting
|
67
|
-
def initialize(date = nil,
|
68
|
+
def initialize(date = nil,
|
69
|
+
notes = "",
|
70
|
+
entries = Array.new,
|
71
|
+
changelog = nil )
|
68
72
|
@date = date
|
69
73
|
@notes = notes
|
70
74
|
@entries = entries
|
75
|
+
@changelog = changelog
|
71
76
|
end
|
72
77
|
def date; @date; end
|
73
78
|
def notes; @notes; end
|
74
79
|
def entries; @entries; end
|
80
|
+
def security; @entries.select {|e| e if e.security }; end
|
81
|
+
def security?; @entries.select {|e| e.security }.first; end
|
75
82
|
|
76
83
|
def date=(timestamp)
|
77
84
|
if (timestamp.is_a?(Time))
|
@@ -83,16 +90,23 @@ module Slackware
|
|
83
90
|
end
|
84
91
|
end
|
85
92
|
def notes=(text); @notes = text; end
|
93
|
+
def changelog=(changelog); @changelog = changelog if changelog.is_a?(Slackware::ChangeLog); end
|
86
94
|
end
|
87
95
|
|
88
96
|
# The class for each item in a change set
|
89
97
|
class Entry
|
90
|
-
def initialize(package = nil,
|
98
|
+
def initialize(package = nil,
|
99
|
+
section = nil,
|
100
|
+
action = nil,
|
101
|
+
notes = "",
|
102
|
+
security = false,
|
103
|
+
update = nil)
|
91
104
|
@package = package
|
92
105
|
@section = section
|
93
106
|
@action = action
|
94
|
-
notes.is_a?(String) ?
|
95
|
-
|
107
|
+
@notes = notes.is_a?(String) ? notes : ""
|
108
|
+
@security = security == true
|
109
|
+
@update = update
|
96
110
|
end
|
97
111
|
|
98
112
|
def package; @package; end
|
@@ -100,57 +114,78 @@ module Slackware
|
|
100
114
|
def action; @action; end
|
101
115
|
def notes; @notes; end
|
102
116
|
def security; @security; end
|
117
|
+
def date; @update ? @update.date: nil;end
|
103
118
|
|
104
119
|
def package=(package_name); @package = package_name ; end
|
105
120
|
def section=(section_name); @section = section_name ; end
|
106
121
|
def action=(action_name); @action = action_name ; end
|
122
|
+
def update=(update); @update = update if update.is_a?(Slackware::ChangeLog::Update) ; end
|
107
123
|
def notes=(notes_txt)
|
108
|
-
notes_txt.is_a?(String) ?
|
124
|
+
@notes = notes_txt.is_a?(String) ? notes_txt : ""
|
109
125
|
end
|
110
126
|
def security=(bool)
|
111
|
-
|
127
|
+
@security = bool == true
|
112
128
|
end
|
113
129
|
end
|
114
130
|
|
115
|
-
|
116
|
-
# +opts+ can include
|
117
|
-
# * :arch - basically '64' or '32'
|
118
|
-
# * :version - 13.1, 13.2, current, etc.
|
119
|
-
# * :url - the URL web link to the ChangeLog.txt
|
120
|
-
# * :image_url - the URL for the loge used in the RSS feed
|
121
|
-
def initialize(file = nil, opts = {})
|
131
|
+
def initialize(file = nil)
|
122
132
|
@file = file
|
123
|
-
@
|
133
|
+
@strio = StringIO.new
|
124
134
|
@updates = Array.new
|
125
135
|
end
|
126
136
|
|
127
137
|
def file; @file; end
|
128
|
-
def opts; @opts; end
|
129
138
|
def updates; @updates; end
|
139
|
+
|
140
|
+
# Returns the latest update in the set
|
141
|
+
def latest
|
142
|
+
sort().last
|
143
|
+
end
|
144
|
+
def sort
|
145
|
+
@updates.sort {|x,y| x.date <=> y.date }
|
146
|
+
end
|
147
|
+
|
148
|
+
# All entries in this Slackware::ChangeLog
|
149
|
+
#
|
150
|
+
# Returns an Array of Slackware::ChangeLog::Entry
|
130
151
|
def entries
|
131
|
-
@updates.map {|
|
152
|
+
@updates.map {|u| u.entries.map {|e| e } }.flatten
|
132
153
|
end
|
154
|
+
|
155
|
+
# All security in this Slackware::ChangeLog
|
156
|
+
#
|
157
|
+
# Returns an Array of Slackware::ChangeLog::Entry
|
133
158
|
def security
|
134
|
-
@updates.map {|u| u.entries.
|
159
|
+
@updates.map {|u| u.entries.select {|e| e if e.security } }.flatten
|
135
160
|
end
|
161
|
+
|
162
|
+
# All packages removed in this Slackware::ChangeLog
|
163
|
+
#
|
164
|
+
# Returns an Array of Slackware::ChangeLog::Entry
|
136
165
|
def pkgs_removed
|
137
|
-
@updates.map {|u| u.entries.
|
166
|
+
@updates.map {|u| u.entries.select {|e| e if e.action == "Removed" } }.flatten
|
138
167
|
end
|
168
|
+
|
169
|
+
# All packages added in this Slackware::ChangeLog
|
170
|
+
#
|
171
|
+
# Returns an Array of Slackware::ChangeLog::Entry
|
139
172
|
def pkgs_added
|
140
|
-
@updates.map {|u| u.entries.
|
173
|
+
@updates.map {|u| u.entries.select {|e| e if e.action == "Added" } }.flatten
|
141
174
|
end
|
175
|
+
|
176
|
+
# All packages upgraded in this Slackware::ChangeLog
|
177
|
+
#
|
178
|
+
# Returns an Array of Slackware::ChangeLog::Entry
|
142
179
|
def pkgs_upgraded
|
143
|
-
@updates.map {|u| u.entries.
|
180
|
+
@updates.map {|u| u.entries.select {|e| e if e.action == "Upgraded" } }.flatten
|
144
181
|
end
|
182
|
+
|
183
|
+
# All packages rebuilt in this Slackware::ChangeLog
|
184
|
+
#
|
185
|
+
# Returns an Array of Slackware::ChangeLog::Entry
|
145
186
|
def pkgs_rebuilt
|
146
|
-
@updates.map {|u| u.entries.
|
147
|
-
end
|
148
|
-
def opts=(hash)
|
149
|
-
if hash.is_a?(Hash)
|
150
|
-
@opts = hash
|
151
|
-
end
|
187
|
+
@updates.map {|u| u.entries.select {|e| e if e.action == "Rebuilt" } }.flatten
|
152
188
|
end
|
153
|
-
|
154
189
|
def parse(opts = {:file => nil, :data => nil})
|
155
190
|
if not(opts[:file].nil?)
|
156
191
|
@updates = parse_this_file(opts[:file]).updates
|
@@ -161,19 +196,19 @@ module Slackware
|
|
161
196
|
end
|
162
197
|
|
163
198
|
# Class method
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
199
|
+
class << self
|
200
|
+
def parse(file)
|
201
|
+
cl = ChangeLog.new(file)
|
202
|
+
return cl.parse()
|
203
|
+
end
|
204
|
+
alias_method :open, :parse
|
170
205
|
end
|
171
206
|
|
172
207
|
def inspect
|
173
208
|
"#<%s:0x%x @file=%s, %d @updates, %d @entries>" % [self.class.name, self.object_id.abs, self.file || '""', self.updates.count || 0, self.entries.count || 0]
|
174
209
|
end
|
175
210
|
|
176
|
-
|
211
|
+
protected
|
177
212
|
# Parse order is something like:
|
178
213
|
# * if its' a date match, store the date
|
179
214
|
# * take change notes until
|
@@ -182,7 +217,7 @@ module Slackware
|
|
182
217
|
# * take packge notes until
|
183
218
|
# * next package or entry separator
|
184
219
|
# * separator creates next change entry
|
185
|
-
def
|
220
|
+
def parse_this_file(file)
|
186
221
|
f_handle = ""
|
187
222
|
if file.is_a?(File)
|
188
223
|
f_handle = file
|
@@ -200,7 +235,10 @@ module Slackware
|
|
200
235
|
changelog = ChangeLog.new(f_handle)
|
201
236
|
f_handle.each do |line|
|
202
237
|
if (line =~ RE_DATE)
|
203
|
-
|
238
|
+
update = Update.new(Time.parse($1))
|
239
|
+
|
240
|
+
# Tying this Slackware::ChangeLog::Update to it's Slackware::ChangeLog parent
|
241
|
+
update.changelog = changelog
|
204
242
|
while true
|
205
243
|
if (f_handle.eof?)
|
206
244
|
break
|
@@ -213,11 +251,15 @@ module Slackware
|
|
213
251
|
end
|
214
252
|
|
215
253
|
# the intimate iteration
|
216
|
-
#
|
254
|
+
# Match is more expensive than =~,
|
217
255
|
# but ruby-1.8.x is lossing the matched values down below
|
218
256
|
# so this works on both ...
|
219
257
|
if (match = RE_PACKAGE_ENTRY.match(u_line))
|
220
258
|
u_entry = Entry.new()
|
259
|
+
|
260
|
+
# tying this entry to it's Slackware::ChangeLog::Update parent
|
261
|
+
u_entry.update = update
|
262
|
+
|
221
263
|
# This silly iteration catches the different cases of
|
222
264
|
# which package line, matches which Regexp. WIN
|
223
265
|
if match[1].nil?
|
@@ -245,31 +287,32 @@ module Slackware
|
|
245
287
|
u_entry.action = match[3] unless match[3].nil?
|
246
288
|
|
247
289
|
# Add this entry to the stack
|
248
|
-
|
290
|
+
update.entries << u_entry
|
249
291
|
else
|
250
|
-
# if
|
292
|
+
# if update.entries is empty, then this text is notes
|
251
293
|
# for the upate, else it is notes, for the entry
|
252
|
-
if (
|
253
|
-
|
294
|
+
if (update.entries.empty?)
|
295
|
+
update.notes = update.notes + u_line
|
254
296
|
else
|
255
297
|
# if this line of the entry security fix, toggle the bool
|
256
298
|
if (u_line =~ RE_SECURITY_FIX)
|
257
|
-
|
299
|
+
update.entries[-1].security = true
|
258
300
|
end
|
259
|
-
|
301
|
+
update.entries[-1].notes = update.entries[-1].notes + u_line
|
260
302
|
end
|
261
303
|
end
|
262
304
|
end
|
263
305
|
|
264
306
|
# Add this update to the stack
|
265
|
-
changelog.updates <<
|
307
|
+
changelog.updates << update
|
266
308
|
end
|
267
309
|
end
|
268
310
|
|
269
311
|
# Give them their change set
|
270
312
|
return changelog
|
271
|
-
end
|
313
|
+
end # def self::parse_this_file
|
314
|
+
|
315
|
+
end # class ChangeLog
|
316
|
+
end # module Slackware
|
272
317
|
|
273
|
-
end
|
274
|
-
end
|
275
318
|
# vim : set sw=2 sts=2 et :
|
@@ -27,29 +27,22 @@ module Slackware
|
|
27
27
|
class ChangeLog
|
28
28
|
# or maybe "http://connie.slackware.com/~msimons/slackware/grfx/shared/dobbslack1.jpg"
|
29
29
|
IMAGE_URL = "http://connie.slackware.com/~msimons/slackware/grfx/shared/bluepiSW.jpg"
|
30
|
+
# +opts+ can include
|
31
|
+
# * :arch - basically '64' or '32'
|
32
|
+
# * :version - 13.1, 13.2, current, etc.
|
33
|
+
# * :url - the URL web link to the ChangeLog.txt
|
34
|
+
# * :image_url - the URL for the loge used in the RSS feed
|
30
35
|
def to_rss(opts = {})
|
31
|
-
# this way we can use the opts from super,
|
32
|
-
# or override for this methods
|
33
|
-
opts = @opts.merge(opts)
|
34
|
-
|
35
36
|
version = "2.0" # ["0.9", "1.0", "2.0"]
|
36
37
|
content = RSS::Maker.make(version) do |m|
|
37
38
|
if (opts[:title])
|
38
39
|
m.channel.title = opts[:title]
|
39
40
|
else
|
40
|
-
added_title = ""
|
41
|
-
if opts[:arch]
|
42
|
-
added_title = added_title + "slackware#{opts[:arch]}"
|
43
|
-
end
|
41
|
+
added_title = "slackware#{opts[:arch]}"
|
44
42
|
if opts[:version]
|
45
|
-
added_title
|
46
|
-
end
|
47
|
-
|
48
|
-
if added_title.empty?
|
49
|
-
m.channel.title = "Slackware ChangeLog.txt"
|
50
|
-
else
|
51
|
-
m.channel.title = "#{added_title} ChangeLog.txt"
|
43
|
+
added_title += "-#{opts[:version]}"
|
52
44
|
end
|
45
|
+
m.channel.title = "#{added_title} ChangeLog.txt"
|
53
46
|
end
|
54
47
|
|
55
48
|
if (opts[:url])
|
@@ -89,8 +82,8 @@ module Slackware
|
|
89
82
|
i = m.items.new_item
|
90
83
|
# Add a plug to the title of the update, if it includes a security fix
|
91
84
|
# set this here, so we don't have to .map again down below
|
92
|
-
|
93
|
-
if (
|
85
|
+
security_count = update.security.length
|
86
|
+
if (security_count > 0)
|
94
87
|
i.title = "%s (* Security fix *)" % [update.date.utc.to_s]
|
95
88
|
else
|
96
89
|
i.title = update.date.utc.to_s
|
@@ -104,8 +97,8 @@ module Slackware
|
|
104
97
|
|
105
98
|
i.description = ""
|
106
99
|
if (update.entries.count > 0)
|
107
|
-
if (
|
108
|
-
i.description = i.description + "%d new update(s), %d security update(s)\n\n" % [update.entries.count,
|
100
|
+
if (security_count > 0)
|
101
|
+
i.description = i.description + "%d new update(s), %d security update(s)\n\n" % [update.entries.count, security_count]
|
109
102
|
else
|
110
103
|
i.description = i.description + "%d new update(s)\n\n" % [update.entries.count]
|
111
104
|
end
|
data/lib/slackware/log.rb
CHANGED
@@ -24,7 +24,6 @@ require 'logger'
|
|
24
24
|
require 'singleton'
|
25
25
|
|
26
26
|
module Slackware
|
27
|
-
|
28
27
|
# Log is a subclass of Logger, but is implemented as a singleton,
|
29
28
|
# so it can be used across library in a somewhat unified manner.
|
30
29
|
# Example:
|
@@ -42,10 +41,11 @@ module Slackware
|
|
42
41
|
# It defaults to WARN level and STDERR
|
43
42
|
def initialize(*args)
|
44
43
|
if $logdev
|
45
|
-
|
44
|
+
super($logdev, args)
|
46
45
|
else
|
47
|
-
|
46
|
+
super(STDERR, args)
|
48
47
|
end
|
48
|
+
self.level = Logger::ERROR
|
49
49
|
end
|
50
50
|
end # class Log
|
51
51
|
end # module Slackware
|
data/lib/slackware/package.rb
CHANGED
@@ -24,6 +24,9 @@ require 'time'
|
|
24
24
|
require 'slackware/log'
|
25
25
|
require 'slackware/paths'
|
26
26
|
|
27
|
+
MyTime = RUBY_VERSION < '1.9'? DateTime : Time
|
28
|
+
|
29
|
+
|
27
30
|
module Slackware
|
28
31
|
class Package
|
29
32
|
RE_FILE_LIST = /^FILE LIST:/
|
@@ -47,7 +50,7 @@ module Slackware
|
|
47
50
|
end
|
48
51
|
if (name =~ RE_REMOVED_NAMES)
|
49
52
|
name = $1
|
50
|
-
self.upgrade_time =
|
53
|
+
self.upgrade_time = MyTime.strptime($2 + ' ' + $3, fmt=FMT_UPGRADE_TIME)
|
51
54
|
end
|
52
55
|
arr = name.split('-')
|
53
56
|
build = arr.pop
|
data/lib/slackware/repo.rb
CHANGED
@@ -38,7 +38,7 @@ module Slackware
|
|
38
38
|
RE_COMPRESSED_SIZE = /^PACKAGE SIZE \(compressed\):\s+(.*)$/
|
39
39
|
RE_UNCOMPRESSED_SIZE = /^PACKAGE SIZE \(uncompressed\):\s+(.*)$/
|
40
40
|
|
41
|
-
attr_accessor :proto, :mirror, :path, :version, :arch, :changelog, :packages
|
41
|
+
attr_accessor :proto, :mirror, :path, :version, :arch, :changelog, :packages, :uri
|
42
42
|
|
43
43
|
def initialize(repo = nil)
|
44
44
|
@packages = nil
|
@@ -53,20 +53,25 @@ module Slackware
|
|
53
53
|
end
|
54
54
|
v
|
55
55
|
end
|
56
|
-
self.arch
|
57
|
-
a = RbConfig::CONFIG["arch"]
|
58
|
-
if a =~ /x86_64/
|
59
|
-
a = "64"
|
60
|
-
else
|
61
|
-
a = ""
|
62
|
-
end
|
63
|
-
a
|
64
|
-
end
|
56
|
+
self.arch = RbConfig::CONFIG["arch"] =~ /x86_64/ ? "64" : ""
|
65
57
|
else
|
66
58
|
## TODO do some hot parsing of 'repo'
|
59
|
+
self.uri = URI.parse(repo)
|
67
60
|
end
|
68
61
|
end
|
69
62
|
|
63
|
+
def url
|
64
|
+
"%s%s%sslackware%s-%s/" % [self.proto,
|
65
|
+
self.mirror,
|
66
|
+
self.path,
|
67
|
+
self.arch,
|
68
|
+
self.version]
|
69
|
+
end
|
70
|
+
|
71
|
+
def url=(thisurl)
|
72
|
+
self.uri = URI.parse(thisurl)
|
73
|
+
end
|
74
|
+
|
70
75
|
def fetch(file = nil)
|
71
76
|
#if file.nil?
|
72
77
|
#url = URI.parse(self.proto + self.mirror + self.path)
|
data/lib/slackware/system.rb
CHANGED
data/lib/slackware/utils.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
|
-
# Copyright 2010
|
3
|
+
# Copyright 2009,2010 Vincent Batts, http://hashbangbash.com/
|
4
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA, USA
|
5
|
+
# Copyright 2012 Vincent Batts, Raleigh, NC, USA
|
4
6
|
# All rights reserved.
|
5
7
|
#
|
6
8
|
# Redistribution and use of this source, with or without modification, is
|
@@ -22,18 +24,13 @@
|
|
22
24
|
|
23
25
|
# started - Fri Oct 9 15:48:43 CDT 2009
|
24
26
|
# updated for args - Tue Mar 23 14:54:19 CDT 2010
|
25
|
-
# Copyright 2009, 2010 Vincent Batts, http://hashbangbash.com/
|
26
27
|
|
27
28
|
require 'slackware'
|
28
29
|
|
29
30
|
# Variables
|
30
31
|
@st = "\033[31;1m"
|
31
32
|
@en = "\033[0m"
|
32
|
-
|
33
|
-
# Classes
|
34
|
-
|
35
|
-
|
36
|
-
# Functions
|
33
|
+
@slog = Slackware::Log.instance
|
37
34
|
|
38
35
|
# This is base builder of the packe list
|
39
36
|
def build_packages(opts = {}, args = [])
|
@@ -180,12 +177,17 @@ def print_packages(pkgs)
|
|
180
177
|
end
|
181
178
|
end
|
182
179
|
|
183
|
-
def print_packages_times(pkgs, epoch = false)
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
180
|
+
def print_packages_times(pkgs, epoch = false, reverse = false)
|
181
|
+
@slog.debug('print_packages_times') { "epoch: #{epoch} ; reverse: #{reverse}" }
|
182
|
+
begin
|
183
|
+
if reverse
|
184
|
+
pkgs.sort_by {|x| x.time }
|
185
|
+
else
|
186
|
+
pkgs.sort_by {|x| x.time }.reverse
|
187
|
+
end
|
188
|
+
end.each {|pkg|
|
189
|
+
printf("%s : %s\n", pkg.fullname, epoch ? pkg.time.to_i : pkg.time.to_s )
|
190
|
+
}
|
189
191
|
end
|
190
192
|
|
191
193
|
def print_packages_description(pkgs)
|
data/lib/slackware/version.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,21 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack-utils
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
5
|
-
prerelease:
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.7.3
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Vincent Batts
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
11
|
+
|
12
|
+
date: 2012-03-09 00:00:00 -05:00
|
13
|
+
default_executable:
|
13
14
|
dependencies: []
|
14
|
-
|
15
|
-
the Slackware Linux OS.
|
15
|
+
|
16
|
+
description: slack-utils is a means by which to access package information on the Slackware Linux OS. See the examples/ for more information.
|
16
17
|
email: vbatts@hashbangbash.com
|
17
|
-
executables:
|
18
|
+
executables:
|
18
19
|
- sli
|
19
20
|
- slf
|
20
21
|
- slo
|
@@ -24,9 +25,10 @@ executables:
|
|
24
25
|
- slu
|
25
26
|
- slfindlinked
|
26
27
|
extensions: []
|
27
|
-
|
28
|
+
|
29
|
+
extra_rdoc_files:
|
28
30
|
- README.rdoc
|
29
|
-
files:
|
31
|
+
files:
|
30
32
|
- README.rdoc
|
31
33
|
- bin/slf
|
32
34
|
- bin/slt
|
@@ -52,32 +54,34 @@ files:
|
|
52
54
|
- lib/slackware/repo.rb
|
53
55
|
- lib/slackware/version.rb
|
54
56
|
- lib/slackware/system.rb
|
57
|
+
has_rdoc: true
|
55
58
|
homepage: https://github.com/vbatts/slack-utils/
|
56
|
-
licenses: []
|
57
59
|
post_install_message:
|
58
|
-
rdoc_options:
|
60
|
+
rdoc_options:
|
59
61
|
- --main=README.rdoc
|
60
62
|
- --line-numbers
|
61
63
|
- --inline-source
|
62
|
-
- --title=Slackware utils (slack-utils) 0.7.
|
63
|
-
require_paths:
|
64
|
+
- --title=Slackware utils (slack-utils) 0.7.3 Documentation
|
65
|
+
require_paths:
|
64
66
|
- lib
|
65
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: "0"
|
72
|
+
version:
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: "0"
|
78
|
+
version:
|
77
79
|
requirements: []
|
80
|
+
|
78
81
|
rubyforge_project:
|
79
|
-
rubygems_version: 1.
|
82
|
+
rubygems_version: 1.3.1
|
80
83
|
signing_key:
|
81
|
-
specification_version:
|
84
|
+
specification_version: 2
|
82
85
|
summary: Accessing information for the Slackware Linux distribution
|
83
86
|
test_files: []
|
87
|
+
|