slack-utils 0.6.1 → 0.6.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +52 -21
- data/bin/slf +26 -45
- data/bin/slfindlinked +34 -1
- data/bin/sli +27 -39
- data/bin/sll +38 -46
- data/bin/slo +20 -1
- data/bin/slp +27 -39
- data/bin/slt +28 -43
- data/lib/slackware.rb +1 -0
- data/lib/slackware/args.rb +99 -0
- data/lib/slackware/changelog.rb +19 -0
- data/lib/slackware/changelog/rss.rb +21 -1
- data/lib/slackware/package.rb +25 -1
- data/lib/slackware/package_bundle.rb +54 -11
- data/lib/slackware/repo.rb +19 -0
- data/lib/slackware/system.rb +19 -0
- data/lib/slackware/utils.rb +64 -14
- data/lib/slackware/version.rb +20 -1
- metadata +26 -45
data/README.rdoc
CHANGED
@@ -2,49 +2,74 @@
|
|
2
2
|
|
3
3
|
== Summary
|
4
4
|
|
5
|
-
A
|
5
|
+
A handful of commands to quickly/easily access information on the Slackware Linux distribution.
|
6
|
+
Further, this provides a ruby library for 'slackware'.
|
6
7
|
|
7
8
|
== Description
|
8
9
|
|
9
10
|
slack-utils
|
10
11
|
|
11
|
-
slp - shows installed slackware packages
|
12
|
-
|
13
|
-
|
12
|
+
<b>slp</b> - shows installed slackware packages
|
13
|
+
with no args, it will show all.
|
14
|
+
or for each arg it will search the package names.
|
14
15
|
|
15
|
-
slf - search installed slackware packages for a file
|
16
|
-
|
17
|
-
|
16
|
+
<b>slf</b> - search installed slackware packages for a file
|
17
|
+
this expects an arg(s), and will output, in grep fashion
|
18
|
+
packages matching your search args.
|
18
19
|
|
19
|
-
slt - mtime/install time of slackware packages
|
20
|
-
|
21
|
-
|
20
|
+
<b>slt</b> - mtime/install time of slackware packages
|
21
|
+
with no args, it will show all.
|
22
|
+
or for each arg it will search the package names.
|
22
23
|
|
23
|
-
sll - list the contents of packages matching the
|
24
|
+
<b>sll</b> - list the contents of packages matching the
|
24
25
|
|
25
|
-
slo - find files in /etc/, that have been orphaned and left behind
|
26
|
-
|
26
|
+
<b>slo</b> - find files in /etc/, that have been orphaned and left behind
|
27
|
+
by unistalled/upgraded packages
|
27
28
|
|
28
|
-
|
29
|
-
|
29
|
+
<b>sli</b> - display the package information, for matching packages
|
30
|
+
|
31
|
+
<b>slfindlinked</b> - finds what is linked to your argument, and it's package
|
32
|
+
expects 1 argument passed.
|
30
33
|
|
31
34
|
|
32
35
|
TODO:
|
33
36
|
* 2010-08-20 09:16 <bailey> which is that I need to run a query to show
|
34
|
-
|
35
|
-
|
37
|
+
me what packages I'm running are different than the slack-current
|
38
|
+
versions, since I make local ones and forget about it
|
36
39
|
* enable `slf` to a relative path, and it determine the absolute path
|
37
40
|
|
38
41
|
== Installation
|
39
42
|
|
40
|
-
|
41
|
-
|
43
|
+
=== From git
|
44
|
+
|
45
|
+
git clone git://github.com/vbatts/slack-utils.git
|
46
|
+
|
47
|
+
make slackpkg
|
48
|
+
|
49
|
+
sudo upgradepkg --install-new pkg/slack-utils-0.6.2-$ARCH-1_vb.tgz
|
50
|
+
|
51
|
+
=== From tar ball
|
52
|
+
|
53
|
+
tar xfz slack-utils-0.6.2.tar.gz
|
54
|
+
|
55
|
+
cd slack-utils-0.6.2
|
56
|
+
|
57
|
+
ruby setup.rb config --prefix=/usr --mandir=/usr/man
|
58
|
+
|
59
|
+
ruby setup.rb install
|
60
|
+
|
61
|
+
=== From the gem
|
62
|
+
|
63
|
+
sudo gem install pkg/slack-utils-0.6.2.gem
|
64
|
+
|
42
65
|
|
43
66
|
== Quick Start
|
44
67
|
|
45
|
-
|
68
|
+
=== Using the commands
|
69
|
+
|
70
|
+
See the system manual page slack-utils(8)
|
46
71
|
|
47
|
-
|
72
|
+
=== Using the library
|
48
73
|
|
49
74
|
$ irb
|
50
75
|
>> require 'rubygems'
|
@@ -75,3 +100,9 @@ For more complex examples, please see the examples directory
|
|
75
100
|
(GEM_ROOT/gems/slack-utils-<version>/examples/).
|
76
101
|
|
77
102
|
You can also contact me for more help or suggestions.
|
103
|
+
|
104
|
+
|
105
|
+
== Bugs and such
|
106
|
+
|
107
|
+
Open an "issue" here https://github.com/vbatts/slack-utils/issues
|
108
|
+
|
data/bin/slf
CHANGED
@@ -1,63 +1,44 @@
|
|
1
|
-
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use of this source, with or without modification, is
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of this source must retain the above copyright
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
12
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
13
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
14
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
15
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
16
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
17
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
18
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
19
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
20
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
21
|
|
3
22
|
$PROGRAM_NAME = File.basename(__FILE__)
|
4
23
|
|
5
|
-
require 'optparse'
|
6
24
|
require 'rubygems'
|
7
25
|
require 'slackware/utils'
|
26
|
+
require 'slackware/args'
|
8
27
|
|
9
|
-
|
10
|
-
begin
|
11
|
-
OptionParser.new do |opts|
|
12
|
-
opts.banner = <<-EOS
|
13
|
-
|
28
|
+
option_banner = <<-EOS
|
14
29
|
Search for a file within installed Slackware package's FILE LIST.
|
15
|
-
|
16
30
|
Usage:
|
17
31
|
#{File.basename(__FILE__)} [options] [pkg search flags] <one or more files>
|
18
32
|
|
19
33
|
one or more files must be list
|
20
34
|
if no search flags, only names, then those only those matching entries are listed
|
21
35
|
EOS
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
opts.on("-p", "--pkg [NAME]", "Package PKGNAME (loose match)") do |o|
|
26
|
-
options[:pkg] = o
|
27
|
-
end
|
28
|
-
opts.on("-V", "--Version [VERSION]", "Package VERSION (loose match)") do |o|
|
29
|
-
options[:version] = o
|
30
|
-
end
|
31
|
-
opts.on("-a", "--arch [ARCH]", "Package ARCH (exact match)") do |o|
|
32
|
-
options[:arch] = o
|
33
|
-
end
|
34
|
-
opts.on("-b", "--build [BUILD]", "Package BUILD (exact match)") do |o|
|
35
|
-
options[:build] = o
|
36
|
-
end
|
37
|
-
opts.on("-t", "--tag [TAG]", "Package TAG (loose match)") do |o|
|
38
|
-
options[:tag] = o
|
39
|
-
end
|
40
|
-
opts.on("-v", "--version", "Display version of this software") do |o|
|
41
|
-
printf("slack-utils (%s) version: %s, Slackware version: %s\n",
|
42
|
-
File.basename(__FILE__),
|
43
|
-
Slackware::UTILS_VERSION,
|
44
|
-
Slackware::System.version
|
45
|
-
)
|
46
|
-
exit()
|
47
|
-
end
|
36
|
+
# This is all the flags we want to use, from Slackware::Args
|
37
|
+
option_flags = [:color, :case_insensitive, :pkg_name, :pkg_version,
|
38
|
+
:pkg_arch, :pkg_build, :pkg_tag]
|
48
39
|
|
49
|
-
|
40
|
+
options = Slackware::Args.parse(ARGV, option_flags, option_banner)
|
50
41
|
|
51
|
-
if (ARGV.count == 0)
|
52
|
-
$stderr.write("ERROR: one of more file must be specified\n")
|
53
|
-
puts opts
|
54
|
-
exit 2
|
55
|
-
end
|
56
|
-
end
|
57
|
-
rescue OptionParser::InvalidOption => e
|
58
|
-
$stderr.write("ERROR: #{e.message}, see --help\n")
|
59
|
-
exit 1
|
60
|
-
end
|
61
42
|
|
62
43
|
if (ARGV.count > 0)
|
63
44
|
options[:all] = true
|
data/bin/slfindlinked
CHANGED
@@ -1,9 +1,42 @@
|
|
1
|
-
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use of this source, with or without modification, is
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of this source must retain the above copyright
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
12
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
13
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
14
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
15
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
16
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
17
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
18
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
19
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
20
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
21
|
|
3
22
|
$PROGRAM_NAME = File.basename(__FILE__)
|
4
23
|
|
5
24
|
require 'rubygems'
|
6
25
|
require 'slackware/utils'
|
26
|
+
require 'slackware/args'
|
27
|
+
|
28
|
+
option_banner = <<-EOS
|
29
|
+
Attempt to find the files
|
30
|
+
Usage:
|
31
|
+
#{File.basename(__FILE__)} [libname or path]
|
32
|
+
EOS
|
33
|
+
options = Slackware::Args.parse(ARGV, [], option_banner)
|
34
|
+
|
35
|
+
if (ARGV.count == 0)
|
36
|
+
$stderr.write("ERROR: a library name is needed to search for\n")
|
37
|
+
exit(2)
|
38
|
+
end
|
39
|
+
|
7
40
|
|
8
41
|
# XXX needs better boilerplating
|
9
42
|
print_find_linked(ARGV[0])
|
data/bin/sli
CHANGED
@@ -1,18 +1,32 @@
|
|
1
|
-
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use of this source, with or without modification, is
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of this source must retain the above copyright
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
12
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
13
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
14
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
15
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
16
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
17
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
18
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
19
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
20
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
21
|
|
3
22
|
$PROGRAM_NAME = File.basename(__FILE__)
|
4
23
|
|
5
|
-
require 'optparse'
|
6
24
|
require 'rubygems'
|
7
25
|
require 'slackware/utils'
|
26
|
+
require 'slackware/args'
|
8
27
|
|
9
|
-
|
10
|
-
begin
|
11
|
-
OptionParser.new do |opts|
|
12
|
-
opts.banner = <<-EOS
|
13
|
-
|
28
|
+
option_banner = <<-EOS
|
14
29
|
List installed Slackware package's information.
|
15
|
-
|
16
30
|
Usage:
|
17
31
|
#{File.basename(__FILE__)} [options] [search flags] [list of names]
|
18
32
|
|
@@ -20,37 +34,11 @@ Usage:
|
|
20
34
|
if no search flags, only names, then those only those matching entries are listed
|
21
35
|
|
22
36
|
EOS
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
29
|
-
opts.on("-V", "--Version [VERSION]", "Package VERSION (loose match)") do |o|
|
30
|
-
options[:version] = o
|
31
|
-
end
|
32
|
-
opts.on("-a", "--arch [ARCH]", "Package ARCH (exact match)") do |o|
|
33
|
-
options[:arch] = o
|
34
|
-
end
|
35
|
-
opts.on("-b", "--build [BUILD]", "Package BUILD (exact match)") do |o|
|
36
|
-
options[:build] = o
|
37
|
-
end
|
38
|
-
opts.on("-t", "--tag [TAG]", "Package TAG (loose match)") do |o|
|
39
|
-
options[:tag] = o
|
40
|
-
end
|
41
|
-
opts.on("-v", "--version", "Display version of this software") do |o|
|
42
|
-
printf("slack-utils (%s) version: %s, Slackware version: %s\n",
|
43
|
-
File.basename(__FILE__),
|
44
|
-
Slackware::UTILS_VERSION,
|
45
|
-
Slackware::System.version
|
46
|
-
)
|
47
|
-
exit()
|
48
|
-
end
|
49
|
-
end.parse!
|
50
|
-
rescue OptionParser::InvalidOption => e
|
51
|
-
$stderr.write("ERROR: #{e.message}, see --help\n")
|
52
|
-
exit 1
|
53
|
-
end
|
37
|
+
# This is all the flags we want to use, from Slackware::Args
|
38
|
+
option_flags = [:color, :case_insensitive, :pkg_name, :pkg_version,
|
39
|
+
:pkg_arch, :pkg_build, :pkg_tag]
|
40
|
+
|
41
|
+
options = Slackware::Args.parse(ARGV, option_flags, option_banner)
|
54
42
|
|
55
43
|
if (ARGV.count > 0)
|
56
44
|
options[:all] = true
|
data/bin/sll
CHANGED
@@ -1,64 +1,56 @@
|
|
1
|
-
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use of this source, with or without modification, is
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of this source must retain the above copyright
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
12
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
13
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
14
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
15
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
16
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
17
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
18
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
19
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
20
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
21
|
|
3
22
|
$PROGRAM_NAME = File.basename(__FILE__)
|
4
23
|
|
5
|
-
require 'optparse'
|
6
24
|
require 'rubygems'
|
7
25
|
require 'slackware/utils'
|
26
|
+
require 'slackware/args'
|
8
27
|
|
9
|
-
|
10
|
-
begin
|
11
|
-
OptionParser.new do |opts|
|
12
|
-
opts.banner = <<-EOS
|
13
|
-
|
28
|
+
option_banner = <<-EOS
|
14
29
|
List owned for files for a given Slackware package.
|
15
|
-
|
16
30
|
Usage:
|
17
31
|
#{File.basename(__FILE__)} [search flags] [list of names]
|
18
32
|
|
19
33
|
if no search flags, only names, then those only those matching entries are listed
|
20
34
|
|
21
35
|
EOS
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
opts.on("-f", "--force", "force me to show all files") do |o|
|
38
|
-
options[:force] = o
|
39
|
-
end
|
40
|
-
opts.on("-v", "--version", "Display version of this software") do |o|
|
41
|
-
printf("slack-utils (%s) version: %s, Slackware version: %s\n",
|
42
|
-
File.basename(__FILE__),
|
43
|
-
Slackware::UTILS_VERSION,
|
44
|
-
Slackware::System.version
|
45
|
-
)
|
46
|
-
exit()
|
47
|
-
end
|
48
|
-
|
49
|
-
opts.parse!
|
50
|
-
|
51
|
-
end
|
52
|
-
rescue OptionParser::InvalidOption => e
|
53
|
-
$stderr.write("ERROR: #{e.message}, see --help\n")
|
54
|
-
exit 1
|
36
|
+
# This is all the flags we want to use, from Slackware::Args
|
37
|
+
option_flags = [:force_all, :case_insensitive, :pkg_name, :pkg_version,
|
38
|
+
:pkg_arch, :pkg_build, :pkg_tag]
|
39
|
+
|
40
|
+
options = Slackware::Args.parse(ARGV, option_flags, option_banner)
|
41
|
+
|
42
|
+
if ((ARGV.count == 0) &&
|
43
|
+
(options[:pkg].nil?) &&
|
44
|
+
(options[:version].nil?) &&
|
45
|
+
(options[:arch].nil?) &&
|
46
|
+
(options[:build].nil?) &&
|
47
|
+
(options[:tag].nil?) &&
|
48
|
+
not(options[:force]) )
|
49
|
+
$stderr.write("WARNING: If you really want to see *ALL* files, use the --force flag\n")
|
50
|
+
exit(2)
|
55
51
|
end
|
56
52
|
|
57
|
-
|
58
|
-
# XXX this is not even jeing used
|
59
|
-
options[:list_files] = true
|
60
|
-
|
61
|
-
if ARGV.count > 0
|
53
|
+
if (ARGV.count > 0)
|
62
54
|
options[:all] = true
|
63
55
|
end
|
64
56
|
|
data/bin/slo
CHANGED
@@ -1,4 +1,23 @@
|
|
1
|
-
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use of this source, with or without modification, is
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of this source must retain the above copyright
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
12
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
13
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
14
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
15
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
16
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
17
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
18
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
19
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
20
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
21
|
|
3
22
|
$PROGRAM_NAME = File.basename(__FILE__)
|
4
23
|
|
data/bin/slp
CHANGED
@@ -1,18 +1,32 @@
|
|
1
|
-
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use of this source, with or without modification, is
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of this source must retain the above copyright
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
12
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
13
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
14
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
15
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
16
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
17
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
18
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
19
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
20
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
21
|
|
3
22
|
$PROGRAM_NAME = File.basename(__FILE__)
|
4
23
|
|
5
|
-
require 'optparse'
|
6
24
|
require 'rubygems'
|
7
25
|
require 'slackware/utils'
|
26
|
+
require 'slackware/args'
|
8
27
|
|
9
|
-
|
10
|
-
begin
|
11
|
-
OptionParser.new do |opts|
|
12
|
-
opts.banner = <<-EOS
|
13
|
-
|
28
|
+
option_banner = <<-EOS
|
14
29
|
List installed Slackware packages.
|
15
|
-
|
16
30
|
Usage:
|
17
31
|
#{File.basename(__FILE__)} [options] [search flags] [list of names]
|
18
32
|
|
@@ -20,37 +34,11 @@ Usage:
|
|
20
34
|
if no search flags, only names, then those only those matching entries are listed
|
21
35
|
|
22
36
|
EOS
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
29
|
-
opts.on("-V", "--Version [VERSION]", "Package VERSION (loose match)") do |o|
|
30
|
-
options[:version] = o
|
31
|
-
end
|
32
|
-
opts.on("-a", "--arch [ARCH]", "Package ARCH (exact match)") do |o|
|
33
|
-
options[:arch] = o
|
34
|
-
end
|
35
|
-
opts.on("-b", "--build [BUILD]", "Package BUILD (exact match)") do |o|
|
36
|
-
options[:build] = o
|
37
|
-
end
|
38
|
-
opts.on("-t", "--tag [TAG]", "Package TAG (loose match)") do |o|
|
39
|
-
options[:tag] = o
|
40
|
-
end
|
41
|
-
opts.on("-v", "--version", "Display version of this software") do |o|
|
42
|
-
printf("slack-utils (%s) version: %s, Slackware version: %s\n",
|
43
|
-
File.basename(__FILE__),
|
44
|
-
Slackware::UTILS_VERSION,
|
45
|
-
Slackware::System.version
|
46
|
-
)
|
47
|
-
exit()
|
48
|
-
end
|
49
|
-
end.parse!
|
50
|
-
rescue OptionParser::InvalidOption => e
|
51
|
-
$stderr.write("ERROR: #{e.message}, see --help\n")
|
52
|
-
exit 1
|
53
|
-
end
|
37
|
+
# This is all the flags we want to use, from Slackware::Args
|
38
|
+
option_flags = [:color, :case_insensitive, :pkg_name,
|
39
|
+
:pkg_version, :pkg_arch, :pkg_build, :pkg_tag]
|
40
|
+
|
41
|
+
options = Slackware::Args.parse(ARGV, option_flags, option_banner)
|
54
42
|
|
55
43
|
if (ARGV.count > 0)
|
56
44
|
options[:all] = true
|
data/bin/slt
CHANGED
@@ -1,18 +1,32 @@
|
|
1
|
-
|
1
|
+
#! /usr/bin/ruby
|
2
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
3
|
+
# All rights reserved.
|
4
|
+
#
|
5
|
+
# Redistribution and use of this source, with or without modification, is
|
6
|
+
# permitted provided that the following conditions are met:
|
7
|
+
#
|
8
|
+
# 1. Redistributions of this source must retain the above copyright
|
9
|
+
# notice, this list of conditions and the following disclaimer.
|
10
|
+
#
|
11
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
12
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
13
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
14
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
15
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
16
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
17
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
18
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
19
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
20
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
2
21
|
|
3
22
|
$PROGRAM_NAME = File.basename(__FILE__)
|
4
23
|
|
5
|
-
require 'optparse'
|
6
24
|
require 'rubygems'
|
7
25
|
require 'slackware/utils'
|
26
|
+
require 'slackware/args'
|
8
27
|
|
9
|
-
|
10
|
-
begin
|
11
|
-
OptionParser.new do |opts|
|
12
|
-
opts.banner = <<-EOS
|
13
|
-
|
28
|
+
option_banner = <<-EOS
|
14
29
|
List (and search) installed Slackware package's times.
|
15
|
-
|
16
30
|
Usage:
|
17
31
|
#{File.basename(__FILE__)} [pkg search flags] [list of names]
|
18
32
|
|
@@ -20,42 +34,13 @@ Usage:
|
|
20
34
|
if no search flags, only names, then those only those matching entries are listed
|
21
35
|
|
22
36
|
EOS
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
29
|
-
opts.on("-p", "--pkg [NAME]", "Package PKGNAME (loose match)") do |o|
|
30
|
-
options[:pkg] = o
|
31
|
-
end
|
32
|
-
opts.on("-V", "--Version [VERSION]", "Package VERSION (loose match)") do |o|
|
33
|
-
options[:version] = o
|
34
|
-
end
|
35
|
-
opts.on("-a", "--arch [ARCH]", "Package ARCH (exact match)") do |o|
|
36
|
-
options[:arch] = o
|
37
|
-
end
|
38
|
-
opts.on("-b", "--build [BUILD]", "Package BUILD (exact match)") do |o|
|
39
|
-
options[:build] = o
|
40
|
-
end
|
41
|
-
opts.on("-t", "--tag [TAG]", "Package TAG (loose match)") do |o|
|
42
|
-
options[:tag] = o
|
43
|
-
end
|
44
|
-
opts.on("-v", "--version", "Display version of this software") do |o|
|
45
|
-
printf("slack-utils (%s) version: %s, Slackware version: %s\n",
|
46
|
-
File.basename(__FILE__),
|
47
|
-
Slackware::UTILS_VERSION,
|
48
|
-
Slackware::System.version
|
49
|
-
)
|
50
|
-
exit()
|
51
|
-
end
|
52
|
-
end.parse!
|
53
|
-
rescue OptionParser::InvalidOption => e
|
54
|
-
$stderr.write("ERROR: #{e.message}, see --help\n")
|
55
|
-
exit 1
|
56
|
-
end
|
37
|
+
# This is all the flags we want to use, from Slackware::Args
|
38
|
+
option_flags = [:color, :epoch, :case_insensitive, :pkg_name, :pkg_version,
|
39
|
+
:pkg_arch, :pkg_build, :pkg_tag]
|
40
|
+
|
41
|
+
options = Slackware::Args.parse(ARGV, option_flags, option_banner)
|
57
42
|
|
58
|
-
# handing through that we are gathering times
|
43
|
+
# handing through that we are gathering times
|
59
44
|
options[:time] = true
|
60
45
|
|
61
46
|
if (ARGV.count > 0)
|
data/lib/slackware.rb
CHANGED
@@ -0,0 +1,99 @@
|
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
20
|
+
|
21
|
+
require 'optparse'
|
22
|
+
|
23
|
+
module Slackware
|
24
|
+
class Args
|
25
|
+
def self.parse(args,flags = nil, banner = nil)
|
26
|
+
flags = [] unless flags.is_a?(Array)
|
27
|
+
options = {}
|
28
|
+
|
29
|
+
opts = OptionParser.new do |opts|
|
30
|
+
if banner
|
31
|
+
opts.banner = banner
|
32
|
+
end
|
33
|
+
if flags.include?(:color)
|
34
|
+
opts.on("-c", "--color", "Colorize output") do |o|
|
35
|
+
options[:color] = o
|
36
|
+
end
|
37
|
+
end
|
38
|
+
if flags.include?(:epoch)
|
39
|
+
opts.on("-e", "--epoch", "Print the time stamp in seconds since 1970-01-01 00:00:00 UTC ") do |o|
|
40
|
+
options[:epoch] = o
|
41
|
+
end
|
42
|
+
end
|
43
|
+
if flags.include?(:pkg_name)
|
44
|
+
opts.on("-p", "--pkg [NAME]", "Package PKGNAME (loose match)") do |o|
|
45
|
+
options[:pkg] = o
|
46
|
+
end
|
47
|
+
end
|
48
|
+
if flags.include?(:pkg_version)
|
49
|
+
opts.on("-V", "--Version [VERSION]", "Package VERSION (loose match)") do |o|
|
50
|
+
options[:version] = o
|
51
|
+
end
|
52
|
+
end
|
53
|
+
if flags.include?(:pkg_arch)
|
54
|
+
opts.on("-a", "--arch [ARCH]", "Package ARCH (exact match)") do |o|
|
55
|
+
options[:arch] = o
|
56
|
+
end
|
57
|
+
end
|
58
|
+
if flags.include?(:pkg_build)
|
59
|
+
opts.on("-b", "--build [BUILD]", "Package BUILD (exact match)") do |o|
|
60
|
+
options[:build] = o
|
61
|
+
end
|
62
|
+
end
|
63
|
+
if flags.include?(:pkg_tag)
|
64
|
+
opts.on("-t", "--tag [TAG]", "Package TAG (loose match)") do |o|
|
65
|
+
options[:tag] = o
|
66
|
+
end
|
67
|
+
end
|
68
|
+
if flags.include?(:case_insensitive)
|
69
|
+
opts.on("-i", "When searching, do a case insensitive match") do |o|
|
70
|
+
options[:case_insensitive] = o
|
71
|
+
end
|
72
|
+
end
|
73
|
+
if flags.include?(:force_all)
|
74
|
+
opts.on("-f", "--force", "force me to show all files") do |o|
|
75
|
+
options[:force] = o
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
opts.on("-v", "--version", "Display version of this software") do |o|
|
80
|
+
printf("slack-utils version: %s, Slackware version: %s\n",
|
81
|
+
Slackware::UTILS_VERSION,
|
82
|
+
Slackware::System.version
|
83
|
+
)
|
84
|
+
exit(0)
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
begin
|
89
|
+
|
90
|
+
opts.parse!
|
91
|
+
return options
|
92
|
+
|
93
|
+
rescue OptionParser::InvalidOption => ex
|
94
|
+
$stderr.write("ERROR: #{e.message}, see --help\n")
|
95
|
+
exit(1)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
data/lib/slackware/changelog.rb
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1
20
|
|
2
21
|
require 'slackware/package'
|
3
22
|
require 'date'
|
@@ -1,3 +1,23 @@
|
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
20
|
+
|
1
21
|
require 'rss/maker'
|
2
22
|
require 'slackware/changelog'
|
3
23
|
|
@@ -109,7 +129,7 @@ module Slackware
|
|
109
129
|
}
|
110
130
|
end
|
111
131
|
i.description = i.description + "</blockquote></pre>\n"
|
112
|
-
i.description.gsub!(/\n/, "<br/>\n")
|
132
|
+
#i.description.gsub!(/\n/, "<br/>\n")
|
113
133
|
}
|
114
134
|
end
|
115
135
|
return content
|
data/lib/slackware/package.rb
CHANGED
@@ -1,3 +1,23 @@
|
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
20
|
+
|
1
21
|
require 'time'
|
2
22
|
|
3
23
|
module Slackware
|
@@ -61,7 +81,11 @@ module Slackware
|
|
61
81
|
f = File.open(self.path + '/' + self.fullname)
|
62
82
|
while true
|
63
83
|
if (f.readline =~ /^PACKAGE DESCRIPTION:\s+(.*)$/)
|
64
|
-
desc = f.take_while {|l|
|
84
|
+
desc = f.take_while {|l|
|
85
|
+
not(l =~ /FILE LIST:/)
|
86
|
+
}.map {|l|
|
87
|
+
l.sub(/^#{self.name}:\s?/, '').chomp
|
88
|
+
}
|
65
89
|
return desc
|
66
90
|
end
|
67
91
|
end
|
@@ -1,20 +1,46 @@
|
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
20
|
+
|
1
21
|
module Slackware
|
2
22
|
class PackageBundle < Package
|
3
|
-
|
23
|
+
attr_accessor :archive
|
4
24
|
|
5
25
|
def initialize(name = nil)
|
6
26
|
super
|
7
27
|
end
|
8
28
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
29
|
+
def parse(name)
|
30
|
+
super(name)
|
31
|
+
if self.build =~ /^(\d+.*)\.(t[gx]z)$/
|
32
|
+
self.build = $1
|
33
|
+
self.archive = $2
|
34
|
+
elsif self.tag =~ /^(.*)\.(t[gx]z)$/
|
35
|
+
self.tag = $1
|
36
|
+
self.archive = $2
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def get_file_list
|
41
|
+
pkg = "%s/%s.%s" % [self.path, self.fullname, self.archive]
|
42
|
+
return nil unless File.exist?(pkg)
|
16
43
|
|
17
|
-
def self::get_file_list(pkg)
|
18
44
|
e_flag = ""
|
19
45
|
if pkg =~ /txz$/
|
20
46
|
e_flag = "J"
|
@@ -27,7 +53,11 @@ module Slackware
|
|
27
53
|
f.readlines.map {|l| l.chomp }
|
28
54
|
}
|
29
55
|
end
|
30
|
-
|
56
|
+
|
57
|
+
def read_file(file)
|
58
|
+
pkg = "%s/%s.%s" % [self.path, self.fullname, self.archive]
|
59
|
+
return nil unless File.exist?(pkg)
|
60
|
+
|
31
61
|
e_flag = ""
|
32
62
|
if pkg =~ /txz$/
|
33
63
|
e_flag = "J"
|
@@ -36,7 +66,20 @@ module Slackware
|
|
36
66
|
elsif pkg =~ /tbz$/
|
37
67
|
e_flag = "j"
|
38
68
|
end
|
39
|
-
IO.popen("tar #{e_flag}xOf #{pkg} #{file}") {|f| f.
|
69
|
+
IO.popen("tar #{e_flag}xOf #{pkg} #{file}") {|f| f.read }
|
70
|
+
end
|
71
|
+
|
72
|
+
def inspect
|
73
|
+
"#<%s:0x%x name=%s version=%s arch=%s build=%s tag=%s archive=%s>" % [
|
74
|
+
self.class.name,
|
75
|
+
self.object_id,
|
76
|
+
self.name.inspect,
|
77
|
+
self.version.inspect,
|
78
|
+
self.arch.inspect,
|
79
|
+
self.build,
|
80
|
+
self.tag.inspect,
|
81
|
+
self.archive.inspect
|
82
|
+
]
|
40
83
|
end
|
41
84
|
end
|
42
85
|
end
|
data/lib/slackware/repo.rb
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1
20
|
|
2
21
|
require 'slackware/package'
|
3
22
|
require 'slackware/changelog'
|
data/lib/slackware/system.rb
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1
20
|
|
2
21
|
require 'slackware/version'
|
3
22
|
require 'slackware/package'
|
data/lib/slackware/utils.rb
CHANGED
@@ -1,4 +1,23 @@
|
|
1
|
-
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
20
|
+
|
2
21
|
# started - Fri Oct 9 15:48:43 CDT 2009
|
3
22
|
# updated for args - Tue Mar 23 14:54:19 CDT 2010
|
4
23
|
# Copyright 2009, 2010 Vincent Batts, http://hashbangbash.com/
|
@@ -13,29 +32,39 @@ require 'slackware'
|
|
13
32
|
|
14
33
|
|
15
34
|
# Functions
|
35
|
+
|
36
|
+
# This is base builder of the packe list
|
16
37
|
def build_packages(opts = {}, args = [])
|
17
38
|
pkgs = Slackware::System.installed_packages
|
18
39
|
|
40
|
+
# separated this little thing out, since it adds a little more time
|
19
41
|
if (opts[:time])
|
20
42
|
pkgs = pkgs.each {|p| p.get_time }
|
21
43
|
end
|
44
|
+
|
22
45
|
if (opts[:all])
|
23
46
|
if (args.count > 0)
|
24
|
-
selected_pkgs = []
|
25
47
|
args.each {|arg|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
48
|
+
# about 0.012s performance improvement,
|
49
|
+
# by compiling it here, instead of inside the iteration.
|
50
|
+
if (opts[:case_insensitive])
|
51
|
+
re = Regexp.compile(/#{arg}/i)
|
52
|
+
else
|
53
|
+
re = Regexp.compile(/#{arg}/)
|
54
|
+
end
|
55
|
+
|
56
|
+
pkgs = pkgs.find_all {|pkg| pkg.fullname =~ re }
|
31
57
|
}
|
32
|
-
pkgs = selected_pkgs.uniq
|
33
|
-
selected_pkgs = nil
|
34
58
|
end
|
59
|
+
re = nil
|
35
60
|
end
|
36
61
|
if (opts[:pkg])
|
62
|
+
if (opts[:case_insensitive])
|
63
|
+
re = Regexp.compile(/#{opts[:pkg]}/i)
|
64
|
+
else
|
65
|
+
re = Regexp.compile(/#{opts[:pkg]}/)
|
66
|
+
end
|
37
67
|
pkgs = pkgs.map {|p|
|
38
|
-
re = /#{opts[:pkg]}/i
|
39
68
|
if p.name =~ re
|
40
69
|
if (opts[:color])
|
41
70
|
p.name = p.name.gsub(re, "#{@st}\\&#{@en}")
|
@@ -43,10 +72,15 @@ def build_packages(opts = {}, args = [])
|
|
43
72
|
p
|
44
73
|
end
|
45
74
|
}.compact
|
75
|
+
re = nil
|
46
76
|
end
|
47
77
|
if (opts[:Version])
|
78
|
+
if (opts[:case_insensitive])
|
79
|
+
re = Regexp.compile(Regexp.escape(/#{opts[:Version]}/i))
|
80
|
+
else
|
81
|
+
re = Regexp.compile(Regexp.escape(/#{opts[:Version]}/))
|
82
|
+
end
|
48
83
|
pkgs = pkgs.map {|p|
|
49
|
-
re = Regexp.new(Regexp.escape(opts[:Version]))
|
50
84
|
if p.version =~ re
|
51
85
|
if (opts[:color])
|
52
86
|
p.version = p.version.gsub(re, "#{@st}\\&#{@en}")
|
@@ -54,10 +88,15 @@ def build_packages(opts = {}, args = [])
|
|
54
88
|
p
|
55
89
|
end
|
56
90
|
}.compact
|
91
|
+
re = nil
|
57
92
|
end
|
58
93
|
if (opts[:arch])
|
94
|
+
if (opts[:case_insensitive])
|
95
|
+
re = Regexp.compile(/#{opts[:arch]}/i)
|
96
|
+
else
|
97
|
+
re = Regexp.compile(/#{opts[:arch]}/)
|
98
|
+
end
|
59
99
|
pkgs = pkgs.map {|p|
|
60
|
-
re = /#{opts[:arch]}/
|
61
100
|
if p.arch =~ re
|
62
101
|
if (opts[:color])
|
63
102
|
p.arch = p.arch.gsub(re, "#{@st}\\&#{@en}")
|
@@ -65,10 +104,15 @@ def build_packages(opts = {}, args = [])
|
|
65
104
|
p
|
66
105
|
end
|
67
106
|
}.compact
|
107
|
+
re = nil
|
68
108
|
end
|
69
109
|
if (opts[:build])
|
110
|
+
if (opts[:case_insensitive])
|
111
|
+
re = Regexp.compile(/#{opts[:build]}/i)
|
112
|
+
else
|
113
|
+
re = Regexp.compile(/#{opts[:build]}/)
|
114
|
+
end
|
70
115
|
pkgs = pkgs.map {|p|
|
71
|
-
re = /#{opts[:build]}/
|
72
116
|
if p.build =~ re
|
73
117
|
if (opts[:color])
|
74
118
|
p.build = p.build.gsub(re, "#{@st}\\&#{@en}")
|
@@ -76,10 +120,15 @@ def build_packages(opts = {}, args = [])
|
|
76
120
|
p
|
77
121
|
end
|
78
122
|
}.compact
|
123
|
+
re = nil
|
79
124
|
end
|
80
125
|
if (opts[:tag])
|
126
|
+
if (opts[:case_insensitive])
|
127
|
+
re = Regexp.compile(/#{opts[:tag]}/i)
|
128
|
+
else
|
129
|
+
re = Regexp.compile(/#{opts[:tag]}/)
|
130
|
+
end
|
81
131
|
pkgs = pkgs.map {|p|
|
82
|
-
re = /#{opts[:tag]}/i
|
83
132
|
if p.tag =~ re
|
84
133
|
if (opts[:color])
|
85
134
|
p.tag = p.tag.gsub(re, "#{@st}\\&#{@en}")
|
@@ -87,6 +136,7 @@ def build_packages(opts = {}, args = [])
|
|
87
136
|
p
|
88
137
|
end
|
89
138
|
}.compact
|
139
|
+
re = nil
|
90
140
|
end
|
91
141
|
|
92
142
|
return pkgs
|
data/lib/slackware/version.rb
CHANGED
@@ -1,3 +1,22 @@
|
|
1
|
+
# Copyright 2010,2011 Vincent Batts, Vienna, VA
|
2
|
+
# All rights reserved.
|
3
|
+
#
|
4
|
+
# Redistribution and use of this source, with or without modification, is
|
5
|
+
# permitted provided that the following conditions are met:
|
6
|
+
#
|
7
|
+
# 1. Redistributions of this source must retain the above copyright
|
8
|
+
# notice, this list of conditions and the following disclaimer.
|
9
|
+
#
|
10
|
+
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
|
11
|
+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
12
|
+
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
13
|
+
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
14
|
+
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
15
|
+
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
16
|
+
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
17
|
+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
18
|
+
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
19
|
+
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1
20
|
|
2
21
|
module Slackware
|
3
22
|
SLACKWARE_VERSION = begin
|
@@ -7,6 +26,6 @@ module Slackware
|
|
7
26
|
rescue
|
8
27
|
nil
|
9
28
|
end
|
10
|
-
UTILS_VERSION = "0.6.
|
29
|
+
UTILS_VERSION = "0.6.2"
|
11
30
|
end
|
12
31
|
|
metadata
CHANGED
@@ -1,29 +1,20 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: slack-utils
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 6
|
9
|
-
- 1
|
10
|
-
version: 0.6.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.6.2
|
5
|
+
prerelease:
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Vincent Batts
|
14
9
|
autorequire: slack-utils
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
date: 2011-11-19 00:00:00 -05:00
|
19
|
-
default_executable:
|
12
|
+
date: 2011-11-19 00:00:00.000000000 Z
|
20
13
|
dependencies: []
|
21
|
-
|
22
|
-
|
23
|
-
package information on the Slackware Linux OS. \n\
|
24
|
-
See the examples/ for more information.\n "
|
14
|
+
description: ! " slack-utils is a means by which to access \npackage information on
|
15
|
+
the Slackware Linux OS. \nSee the examples/ for more information.\n "
|
25
16
|
email: vbatts@hashbangbash.com
|
26
|
-
executables:
|
17
|
+
executables:
|
27
18
|
- sli
|
28
19
|
- slf
|
29
20
|
- slo
|
@@ -32,10 +23,9 @@ executables:
|
|
32
23
|
- slt
|
33
24
|
- slfindlinked
|
34
25
|
extensions: []
|
35
|
-
|
36
|
-
extra_rdoc_files:
|
26
|
+
extra_rdoc_files:
|
37
27
|
- README.rdoc
|
38
|
-
files:
|
28
|
+
files:
|
39
29
|
- README.rdoc
|
40
30
|
- bin/slf
|
41
31
|
- bin/slt
|
@@ -50,6 +40,7 @@ files:
|
|
50
40
|
- examples/repo.rb
|
51
41
|
- lib/slackware.rb
|
52
42
|
- lib/slackware/utils.rb
|
43
|
+
- lib/slackware/args.rb
|
53
44
|
- lib/slackware/changelog.rb
|
54
45
|
- lib/slackware/changelog/rss.rb
|
55
46
|
- lib/slackware/package.rb
|
@@ -57,42 +48,32 @@ files:
|
|
57
48
|
- lib/slackware/repo.rb
|
58
49
|
- lib/slackware/version.rb
|
59
50
|
- lib/slackware/system.rb
|
60
|
-
has_rdoc: true
|
61
51
|
homepage: https://github.com/vbatts/slack-utils/
|
62
52
|
licenses: []
|
63
|
-
|
64
53
|
post_install_message:
|
65
|
-
rdoc_options:
|
54
|
+
rdoc_options:
|
66
55
|
- --main=README.rdoc
|
67
56
|
- --line-numbers
|
68
57
|
- --inline-source
|
69
|
-
- --title=Slackware utils (slack-utils) 0.6.
|
70
|
-
require_paths:
|
58
|
+
- --title=Slackware utils (slack-utils) 0.6.2 Documentation
|
59
|
+
require_paths:
|
71
60
|
- lib
|
72
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
73
62
|
none: false
|
74
|
-
requirements:
|
75
|
-
- -
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
|
78
|
-
|
79
|
-
- 0
|
80
|
-
version: "0"
|
81
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ! '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
82
68
|
none: false
|
83
|
-
requirements:
|
84
|
-
- -
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
|
87
|
-
segments:
|
88
|
-
- 0
|
89
|
-
version: "0"
|
69
|
+
requirements:
|
70
|
+
- - ! '>='
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '0'
|
90
73
|
requirements: []
|
91
|
-
|
92
74
|
rubyforge_project:
|
93
|
-
rubygems_version: 1.
|
75
|
+
rubygems_version: 1.8.6
|
94
76
|
signing_key:
|
95
77
|
specification_version: 3
|
96
78
|
summary: Accessing information for the Slackware Linux distribution
|
97
79
|
test_files: []
|
98
|
-
|