aurb 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +41 -0
- data/VERSION +1 -1
- data/aurb.gemspec +4 -4
- data/lib/aurb.rb +1 -1
- data/lib/aurb/aur.rb +7 -12
- data/lib/aurb/cli.rb +18 -30
- data/test/unit/test_aur.rb +19 -20
- metadata +4 -4
- data/README.rdoc +0 -37
data/README.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Aurb
|
2
|
+
|
3
|
+
An AUR (Arch User Repository) utility.
|
4
|
+
|
5
|
+
Aurb can download from, search and look for updates on the AUR.
|
6
|
+
|
7
|
+
## Install
|
8
|
+
|
9
|
+
For Arch users, aurb is [available on the aur](http://aur.archlinux.org/packages.php?ID=24395).
|
10
|
+
|
11
|
+
If you rather install it as a gem, you could:
|
12
|
+
|
13
|
+
# gem install aurb
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
Download one or more packages:
|
18
|
+
|
19
|
+
$ aurb download hon ioquake3
|
20
|
+
|
21
|
+
Search for one or more packages:
|
22
|
+
|
23
|
+
$ aurb search firefox opera
|
24
|
+
|
25
|
+
Look for upgrades to packages you have installed from the AUR:
|
26
|
+
|
27
|
+
$ aurb upgrade
|
28
|
+
|
29
|
+
## Tests
|
30
|
+
|
31
|
+
Clone the project, and run:
|
32
|
+
|
33
|
+
$ rake test
|
34
|
+
|
35
|
+
## Documentation
|
36
|
+
|
37
|
+
See [rdoc.info](http://rdoc.info/projects/gigamo/aurb).
|
38
|
+
|
39
|
+
## Copyright
|
40
|
+
|
41
|
+
Copyright (c) 2009-2010 Gigamo. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0
|
data/aurb.gemspec
CHANGED
@@ -5,22 +5,22 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{aurb}
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.2.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Gigamo"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-04}
|
13
13
|
s.default_executable = %q{aurb}
|
14
14
|
s.email = %q{gigamo@gmail.com}
|
15
15
|
s.executables = ["aurb"]
|
16
16
|
s.extra_rdoc_files = [
|
17
17
|
"LICENSE",
|
18
|
-
"README.
|
18
|
+
"README.md"
|
19
19
|
]
|
20
20
|
s.files = [
|
21
21
|
".gitignore",
|
22
22
|
"LICENSE",
|
23
|
-
"README.
|
23
|
+
"README.md",
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
26
|
"aurb.gemspec",
|
data/lib/aurb.rb
CHANGED
data/lib/aurb/aur.rb
CHANGED
@@ -27,8 +27,8 @@ module Aurb
|
|
27
27
|
# Search the AUR for given +packages+.
|
28
28
|
# Returns an array of results.
|
29
29
|
#
|
30
|
-
# search(
|
31
|
-
def search(packages)
|
30
|
+
# search('aurb') # => [{:ID => ..., :Name => 'aurb', ...}, {...}]
|
31
|
+
def search(*packages)
|
32
32
|
packages.map do |package|
|
33
33
|
list_search_results(package)
|
34
34
|
end.flatten.delete_if(&:blank?)
|
@@ -37,8 +37,8 @@ module Aurb
|
|
37
37
|
# Download +packages+ from the AUR.
|
38
38
|
# Returns an array of downloadable package urls.
|
39
39
|
#
|
40
|
-
# download(
|
41
|
-
def download(packages)
|
40
|
+
# download('aurb') # => ['http://.../aurb.tar.gz']
|
41
|
+
def download(*packages)
|
42
42
|
packages.map do |package|
|
43
43
|
Aurb.aur_download_path URI.escape(package.to_s)
|
44
44
|
end.select do |package|
|
@@ -61,7 +61,7 @@ module Aurb
|
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
|
-
|
64
|
+
protected
|
65
65
|
|
66
66
|
# See if +package+ is available in the community repository.
|
67
67
|
def in_community?(package)
|
@@ -103,17 +103,12 @@ module Aurb
|
|
103
103
|
end
|
104
104
|
end
|
105
105
|
|
106
|
-
|
106
|
+
private
|
107
107
|
|
108
108
|
# Shortcut to the +Yajl+ JSON parser.
|
109
109
|
def parse_json(json)
|
110
110
|
json = Yajl::Parser.new.parse(open(json).read)
|
111
|
-
|
112
|
-
if block_given?
|
113
|
-
yield json
|
114
|
-
else
|
115
|
-
json
|
116
|
-
end
|
111
|
+
yield json rescue json
|
117
112
|
end
|
118
113
|
end
|
119
114
|
end
|
data/lib/aurb/cli.rb
CHANGED
@@ -6,22 +6,23 @@ require File.expand_path(File.dirname(__FILE__) + '/../aurb')
|
|
6
6
|
|
7
7
|
module Aurb
|
8
8
|
class CLI < Thor
|
9
|
-
ARGV
|
9
|
+
ARGV = ::ARGV.dup
|
10
10
|
|
11
11
|
map '-d' => :download
|
12
12
|
map '-s' => :search
|
13
13
|
map '-u' => :upgrade
|
14
14
|
|
15
|
-
desc 'download
|
15
|
+
desc 'download PACKAGES', 'Download packages'
|
16
16
|
method_option :path,
|
17
17
|
:type => :string,
|
18
18
|
:default => File.join(ENV[:HOME], 'abs'),
|
19
19
|
:banner => 'Specify the path to download to'
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
20
|
+
method_option :keep,
|
21
|
+
:type => :boolean,
|
22
|
+
:banner => 'Keep the tarball after downloading'
|
23
|
+
def download(*pkgs)
|
24
|
+
pkgs = Aurb.aur.download(*pkgs)
|
25
|
+
puts 'No downloadable packages found'.colorize(:red) and return if pkgs.blank?
|
25
26
|
opts = options.dup
|
26
27
|
path = opts[:path][0] == '/' ? opts[:path] : File.join(Dir.pwd, opts[:path])
|
27
28
|
if File.exist?(path)
|
@@ -29,41 +30,30 @@ module Aurb
|
|
29
30
|
else
|
30
31
|
raise AurbDownloadError, "'#{path}' is not a valid path"
|
31
32
|
end
|
32
|
-
|
33
33
|
pkgs.each_with_index do |package, index|
|
34
|
-
|
35
|
-
total = pkgs.size
|
36
|
-
local = package.split('/')[-1]
|
37
|
-
|
34
|
+
local = package.split('/')[-1]
|
38
35
|
Dir.chdir path do
|
39
36
|
open package do |remote|
|
40
37
|
File.open local, 'wb' do |local|
|
41
38
|
local.write remote.read
|
42
39
|
end
|
43
40
|
end
|
44
|
-
|
45
|
-
|
46
|
-
Zlib::GzipReader.new(File.open(local, 'rb')), Dir.pwd
|
47
|
-
)
|
48
|
-
File.delete local
|
41
|
+
Archive::Tar::Minitar.unpack Zlib::GzipReader.new(File.open(local, 'rb')), Dir.pwd
|
42
|
+
File.delete local unless opts.keep?
|
49
43
|
end
|
50
|
-
|
51
|
-
puts "(#{current}/#{total}) downloaded #{local}"
|
44
|
+
puts "(#{index+1}/#{pkgs.size}) downloaded #{local}"
|
52
45
|
end
|
53
46
|
end
|
54
47
|
|
55
|
-
desc 'search
|
56
|
-
def search(pkgs)
|
57
|
-
pkgs = Aurb.aur.search(pkgs
|
58
|
-
|
59
|
-
puts 'No results found' and return if pkgs.blank?
|
60
|
-
|
48
|
+
desc 'search PACKAGES', 'Search for packages'
|
49
|
+
def search(*pkgs)
|
50
|
+
pkgs = Aurb.aur.search(*pkgs)
|
51
|
+
puts 'No results found'.colorize(:red) and return if pkgs.blank?
|
61
52
|
pkgs.each do |package|
|
62
53
|
status = package.OutOfDate == '1' ? '✘'.colorize(:red) : '✔'.colorize(:green)
|
63
54
|
name, version, description = package.Name.colorize(:yellow),
|
64
55
|
package.Version,
|
65
56
|
package.Description
|
66
|
-
|
67
57
|
puts "[#{status}] #{name} (#{version})\n #{description}"
|
68
58
|
end
|
69
59
|
end
|
@@ -72,11 +62,9 @@ module Aurb
|
|
72
62
|
def upgrade
|
73
63
|
list = `pacman -Qm`.split(/\n/)
|
74
64
|
pkgs = Aurb.aur.upgrade(list)
|
75
|
-
|
76
|
-
puts 'Nothing to upgrade' and return if pkgs.blank?
|
77
|
-
|
65
|
+
puts 'Nothing to upgrade'.colorize(:red) and return if pkgs.blank?
|
78
66
|
pkgs.each do |package|
|
79
|
-
puts "#{package} has an upgrade available"
|
67
|
+
puts "#{package.to_s.colorize(:yellow)} has an upgrade available"
|
80
68
|
end
|
81
69
|
end
|
82
70
|
end
|
data/test/unit/test_aur.rb
CHANGED
@@ -26,7 +26,7 @@ class AurTest < Test::Unit::TestCase
|
|
26
26
|
end
|
27
27
|
|
28
28
|
should 'return an array' do
|
29
|
-
|
29
|
+
assert_operator Array, :===, Aurb.aur.upgrade(@list)
|
30
30
|
end
|
31
31
|
|
32
32
|
should 'contain only upgradable packages' do
|
@@ -37,56 +37,55 @@ class AurTest < Test::Unit::TestCase
|
|
37
37
|
|
38
38
|
context 'download' do
|
39
39
|
setup do
|
40
|
-
@package_working =
|
41
|
-
@package_faulty =
|
40
|
+
@package_working = 'aurb'
|
41
|
+
@package_faulty = 'foobarbaz'
|
42
|
+
@package_multi = 'aurb', 'yaourt'
|
42
43
|
end
|
43
44
|
|
44
45
|
should 'return an array' do
|
45
|
-
|
46
|
-
|
46
|
+
assert_operator Array, :===, Aurb.aur.download(*@package_working)
|
47
|
+
assert_operator Array, :===, Aurb.aur.download(*@package_faulty)
|
47
48
|
end
|
48
49
|
|
49
50
|
should 'return download links' do
|
50
|
-
assert_equal [Aurb.aur_download_path(
|
51
|
+
assert_equal [Aurb.aur_download_path(*@package_working)], Aurb.aur.download(*@package_working)
|
51
52
|
end
|
52
53
|
|
53
54
|
should 'filter out non-existant packages' do
|
54
|
-
assert Aurb.aur.download(
|
55
|
-
assert_equal [], Aurb.aur.download(
|
55
|
+
assert Aurb.aur.download(*@package_faulty).blank?
|
56
|
+
assert_equal [], Aurb.aur.download(*@package_faulty)
|
56
57
|
end
|
57
58
|
end
|
58
59
|
|
59
60
|
context 'search' do
|
60
61
|
setup do
|
61
|
-
@package_working =
|
62
|
-
@package_faulty =
|
62
|
+
@package_working = 'aurb'
|
63
|
+
@package_faulty = 'foobarbaz'
|
64
|
+
@package_multi = 'aurb', 'yaourt'
|
63
65
|
end
|
64
66
|
|
65
67
|
should 'return an array of results' do
|
66
|
-
|
68
|
+
assert_operator Array, :===, Aurb.aur.search(*@package_working)
|
69
|
+
assert_operator Array, :===, Aurb.aur.search(*@package_faulty)
|
67
70
|
end
|
68
71
|
|
69
72
|
should 'filter out non-existant packages' do
|
70
|
-
assert Aurb.aur.search(
|
71
|
-
assert_equal [], Aurb.aur.search(
|
73
|
+
assert Aurb.aur.search(*@package_faulty).blank?
|
74
|
+
assert_equal [], Aurb.aur.search(*@package_faulty)
|
72
75
|
end
|
73
76
|
|
74
77
|
context 'result' do
|
75
78
|
setup do
|
76
|
-
@result = Aurb.aur.search(
|
79
|
+
@result = Aurb.aur.search(*@package_working).first
|
77
80
|
end
|
78
81
|
|
79
82
|
should 'return an array containing hashes' do
|
80
|
-
|
83
|
+
assert_operator Hash, :===, @result
|
81
84
|
end
|
82
85
|
|
83
86
|
context 'keys' do
|
84
|
-
setup do
|
85
|
-
@key = @result.keys.first
|
86
|
-
end
|
87
|
-
|
88
87
|
should 'be symbolized' do
|
89
|
-
|
88
|
+
assert_operator Symbol, :===, @result.keys.first
|
90
89
|
end
|
91
90
|
end
|
92
91
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aurb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gigamo
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-03-04 00:00:00 +01:00
|
13
13
|
default_executable: aurb
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -70,11 +70,11 @@ extensions: []
|
|
70
70
|
|
71
71
|
extra_rdoc_files:
|
72
72
|
- LICENSE
|
73
|
-
- README.
|
73
|
+
- README.md
|
74
74
|
files:
|
75
75
|
- .gitignore
|
76
76
|
- LICENSE
|
77
|
-
- README.
|
77
|
+
- README.md
|
78
78
|
- Rakefile
|
79
79
|
- VERSION
|
80
80
|
- aurb.gemspec
|
data/README.rdoc
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
= Aurb
|
2
|
-
|
3
|
-
An AUR (Arch User Repository) utility.
|
4
|
-
|
5
|
-
Aurb can download from, search and look for updates on the AUR.
|
6
|
-
|
7
|
-
== Install
|
8
|
-
|
9
|
-
$ gem install aurb
|
10
|
-
|
11
|
-
== Usage
|
12
|
-
|
13
|
-
Download one or more packages:
|
14
|
-
|
15
|
-
$ aurb download "firefox-nightly opera chromium-browser-svn"
|
16
|
-
|
17
|
-
Search for one or more packages:
|
18
|
-
|
19
|
-
$ aurb search "firefox opera"
|
20
|
-
|
21
|
-
Look for upgrades to packages you have installed from the AUR:
|
22
|
-
|
23
|
-
$ aurb upgrade
|
24
|
-
|
25
|
-
== Tests
|
26
|
-
|
27
|
-
Just clone the project, and run
|
28
|
-
|
29
|
-
$ rake test:units
|
30
|
-
|
31
|
-
== Documentation
|
32
|
-
|
33
|
-
See http://rdoc.info/projects/gigamo/aurb
|
34
|
-
|
35
|
-
== Copyright
|
36
|
-
|
37
|
-
Copyright (c) 2009-2010 Gigamo. See LICENSE for details.
|