brew-cask-tools 1.0.3 → 1.1.0
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.
- checksums.yaml +4 -4
- data/lib/bct/cask.rb +42 -61
- data/lib/bct/cask/info.rb +24 -24
- data/lib/bct/cask/version.rb +54 -0
- data/lib/bct/cask/versions.rb +49 -0
- data/lib/bct/caskroom.rb +10 -12
- data/lib/bct/metadata.rb +1 -3
- data/lib/bct/tasks.rb +6 -6
- data/lib/bct/tasks/caskroom.rb +15 -0
- data/lib/bct/tasks/cleanup.rb +28 -29
- data/lib/bct/tasks/outdated.rb +19 -27
- data/lib/bct/tasks/upgrade.rb +26 -24
- metadata +26 -11
- data/lib/bct/util.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69b3132783d2a2e29ca228d44598ccbfef53d5f9
|
4
|
+
data.tar.gz: f4d075a519e9b0f87f5728914e990ed064c9c71d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 65744666d8fa3bbf845feed5a362e0964aaca2f99ffb0d6f17e055f0afd9f77625cd446f6419eec79c8daa213c0fa466d3c7b4710f920dd67e3e21e6cb98248e
|
7
|
+
data.tar.gz: 680db979070c6dffb5d6ccc80b459d0ca8f4df5cf29facc36b3b89a241fa70e87bb7a869f5a84ff05a3791fa93d73b9a764e71345ad2ea22aef0df19d0265f78
|
data/lib/bct/cask.rb
CHANGED
@@ -3,9 +3,10 @@ require 'thor'
|
|
3
3
|
require 'open3'
|
4
4
|
|
5
5
|
require_relative './cask/info'
|
6
|
+
require_relative './cask/versions'
|
6
7
|
|
8
|
+
# Location of homebrew cask's caskroom
|
7
9
|
CASKROOM = '/usr/local/Caskroom'.freeze
|
8
|
-
DIR_BLACKLIST = ['.', '..', '.metadata'].freeze
|
9
10
|
|
10
11
|
module BrewCaskTools
|
11
12
|
# Cask control class. Implements operations on a single cask.
|
@@ -24,33 +25,33 @@ module BrewCaskTools
|
|
24
25
|
info = `brew cask info #{name}`.split("\n")
|
25
26
|
end
|
26
27
|
|
27
|
-
@info = Info.new(info)
|
28
|
-
@deprecated = deprecated?
|
28
|
+
@info = Casks::Info.new(info)
|
29
29
|
@dir = File.join(CASKROOM, @name)
|
30
|
+
@versions = Casks::Versions.new(@dir, @info.short_name.sub("#{@name}: ", ''))
|
30
31
|
end
|
31
32
|
|
32
|
-
def
|
33
|
-
@
|
33
|
+
def current
|
34
|
+
@versions.current
|
34
35
|
end
|
35
36
|
|
36
|
-
def
|
37
|
-
@
|
37
|
+
def candidate
|
38
|
+
@versions.candidate
|
38
39
|
end
|
39
40
|
|
40
|
-
def
|
41
|
-
|
41
|
+
def versions
|
42
|
+
@versions.installed
|
42
43
|
end
|
43
44
|
|
44
|
-
def
|
45
|
-
|
46
|
-
.reject { |i| DIR_BLACKLIST.include?(i) }
|
47
|
-
.sort
|
45
|
+
def old
|
46
|
+
@versions.old_installed
|
48
47
|
end
|
49
48
|
|
50
|
-
def
|
51
|
-
|
52
|
-
|
53
|
-
|
49
|
+
def metadata
|
50
|
+
@versions.metadata
|
51
|
+
end
|
52
|
+
|
53
|
+
def latest?
|
54
|
+
@versions.latest?
|
54
55
|
end
|
55
56
|
|
56
57
|
def deprecated?
|
@@ -58,71 +59,51 @@ module BrewCaskTools
|
|
58
59
|
end
|
59
60
|
|
60
61
|
def can_cleanup?
|
61
|
-
|
62
|
-
(local_versions.length > 1 || local_metadata_versions.length > 1)
|
62
|
+
versions.length > 1 || metadata.length > 1
|
63
63
|
end
|
64
64
|
|
65
65
|
def outdated?
|
66
|
-
|
66
|
+
return false if latest?
|
67
|
+
candidate > current
|
67
68
|
end
|
68
69
|
|
69
|
-
def
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
cmd = "brew cask install #{@name} --force"
|
75
|
-
Open3.popen2e(cmd) do |_stdin, stdout_err, _wait_thr|
|
76
|
-
while line = stdout_err.gets
|
70
|
+
def exec
|
71
|
+
Open3.popen2e("brew cask install #{@name} --force") do |_stdin, stdout_err, _wait_thr|
|
72
|
+
line = ''
|
73
|
+
while line
|
74
|
+
line = stdout_err.gets
|
77
75
|
puts line
|
78
76
|
end
|
79
77
|
end
|
80
|
-
say "Upgraded #{@name} to version #{current_version}", :green
|
81
78
|
end
|
82
79
|
|
83
|
-
def
|
84
|
-
|
85
|
-
|
80
|
+
def upgrade
|
81
|
+
return say "#{@name} uses the `latest` convention. " \
|
82
|
+
'Homebrew cask does not upgrade casks marked as ' \
|
83
|
+
'`latest`. Use another method of determining if ' \
|
84
|
+
'this application has an upgrade', :green if latest?
|
86
85
|
|
87
|
-
|
88
|
-
|
89
|
-
end
|
86
|
+
return say "You have the most recent version of #{@name}. " \
|
87
|
+
'It cannot be upgraded', :green unless outdated?
|
90
88
|
|
91
|
-
|
92
|
-
|
93
|
-
|
89
|
+
say "Installing #{@name} (#{candidate})", :cyan
|
90
|
+
exec
|
91
|
+
say "Upgraded #{@name} to version #{candidate}", :green
|
94
92
|
end
|
95
93
|
|
96
94
|
def cleanup
|
97
95
|
return unless can_cleanup?
|
98
|
-
|
99
|
-
|
96
|
+
|
97
|
+
if deprecated?
|
98
|
+
yield self, versions
|
100
99
|
# Delete the whole cask
|
101
|
-
|
100
|
+
::FileUtils.rm_rf(@dir, secure: true, verbose: true)
|
102
101
|
return
|
103
102
|
end
|
104
103
|
|
105
|
-
yield self,
|
106
|
-
rm_old(old_versions, method(:rm_version))
|
107
|
-
rm_old(old_metadata, method(:rm_metadata))
|
108
|
-
end
|
109
|
-
|
110
|
-
def rm_old(versions, method)
|
111
|
-
versions.each do |version|
|
112
|
-
method.call(version)
|
113
|
-
end
|
114
|
-
end
|
115
|
-
|
116
|
-
def rm_version(version)
|
117
|
-
rm(File.join(@dir, version))
|
118
|
-
end
|
119
|
-
|
120
|
-
def rm_metadata(version)
|
121
|
-
rm(File.join(@dir, '.metadata', version))
|
122
|
-
end
|
104
|
+
yield self, old
|
123
105
|
|
124
|
-
|
125
|
-
::FileUtils.rm_rf(dir, secure: true, verbose: true)
|
106
|
+
@versions.rm_old
|
126
107
|
end
|
127
108
|
end
|
128
109
|
end
|
data/lib/bct/cask/info.rb
CHANGED
@@ -1,34 +1,34 @@
|
|
1
|
-
require 'pry'
|
2
|
-
|
3
1
|
module BrewCaskTools
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
module Casks
|
3
|
+
# Class to keep brittle parsing of `brew cask info #{cask}` localized.
|
4
|
+
class Info
|
5
|
+
def initialize(arr)
|
6
|
+
@info = arr.nil? ? [] : arr
|
7
|
+
end
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
def short_name
|
10
|
+
@info[0]
|
11
|
+
end
|
13
12
|
|
14
|
-
|
15
|
-
|
16
|
-
|
13
|
+
def url
|
14
|
+
@info[1]
|
15
|
+
end
|
17
16
|
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
def path
|
18
|
+
@info[2]
|
19
|
+
end
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
def cask_url
|
22
|
+
@info[3]
|
23
|
+
end
|
25
24
|
|
26
|
-
|
27
|
-
|
28
|
-
|
25
|
+
def name
|
26
|
+
@info[5]
|
27
|
+
end
|
29
28
|
|
30
|
-
|
31
|
-
|
29
|
+
def app_name
|
30
|
+
@info[7]
|
31
|
+
end
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'versionomy'
|
2
|
+
|
3
|
+
module BrewCaskTools
|
4
|
+
module Casks
|
5
|
+
# Parent class for different types of Versions
|
6
|
+
class Version
|
7
|
+
DIR_BLACKLIST = ['.', '..', '.metadata'].freeze
|
8
|
+
|
9
|
+
def initialize(dir)
|
10
|
+
@dir = dir
|
11
|
+
end
|
12
|
+
|
13
|
+
def versions
|
14
|
+
@versions ||= latest? ? ['latest'] : all_versions.sort
|
15
|
+
end
|
16
|
+
|
17
|
+
def latest?
|
18
|
+
all_versions.select { |version| version.to_s == 'latest' }.length.positive?
|
19
|
+
end
|
20
|
+
|
21
|
+
def rm_old
|
22
|
+
old.each { |version| rm(version) }
|
23
|
+
end
|
24
|
+
|
25
|
+
def old
|
26
|
+
_, *previous = versions.reverse
|
27
|
+
previous
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.parse_version(version)
|
31
|
+
Versionomy.parse(version)
|
32
|
+
rescue Versionomy::Errors::ParseError
|
33
|
+
version
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def rm(version)
|
39
|
+
version_dir = File.join(@dir, version.to_s)
|
40
|
+
::FileUtils.rm_rf(version_dir, secure: true, verbose: true)
|
41
|
+
end
|
42
|
+
|
43
|
+
def all_versions
|
44
|
+
Dir.entries(@dir)
|
45
|
+
.reject { |dir| DIR_BLACKLIST.include?(dir) }
|
46
|
+
.map do |version|
|
47
|
+
if File.directory?(File.join(@dir, version))
|
48
|
+
Version.parse_version(version)
|
49
|
+
end
|
50
|
+
end.compact
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require_relative './version'
|
2
|
+
|
3
|
+
module BrewCaskTools
|
4
|
+
module Casks
|
5
|
+
# Operations on a collection of Cask versions
|
6
|
+
class Versions
|
7
|
+
attr_reader :local, :meta
|
8
|
+
|
9
|
+
def initialize(dir, candidate)
|
10
|
+
@candidate = candidate
|
11
|
+
@local = Version.new(dir)
|
12
|
+
@meta = Version.new(File.join(dir, '.metadata'))
|
13
|
+
end
|
14
|
+
|
15
|
+
def installed
|
16
|
+
@local.versions
|
17
|
+
end
|
18
|
+
|
19
|
+
def metadata
|
20
|
+
@meta.versions
|
21
|
+
end
|
22
|
+
|
23
|
+
def candidate
|
24
|
+
Version.parse_version(@candidate)
|
25
|
+
end
|
26
|
+
|
27
|
+
def current
|
28
|
+
installed.last
|
29
|
+
end
|
30
|
+
|
31
|
+
def latest?
|
32
|
+
current.to_s == 'latest'
|
33
|
+
end
|
34
|
+
|
35
|
+
def old_installed
|
36
|
+
@local.old
|
37
|
+
end
|
38
|
+
|
39
|
+
def old_metadata
|
40
|
+
@meta.old
|
41
|
+
end
|
42
|
+
|
43
|
+
def rm_old
|
44
|
+
@local.rm_old
|
45
|
+
@meta.rm_old
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
data/lib/bct/caskroom.rb
CHANGED
@@ -1,32 +1,30 @@
|
|
1
|
-
require 'thor'
|
2
|
-
require 'pry'
|
3
|
-
|
4
1
|
require_relative './cask'
|
5
2
|
|
6
3
|
module BrewCaskTools
|
7
4
|
# Represents a list of Casks.
|
8
|
-
class Caskroom
|
5
|
+
class Caskroom
|
9
6
|
def initialize
|
10
7
|
super
|
11
8
|
end
|
12
9
|
|
10
|
+
# An array of installed casks
|
11
|
+
# @return [Array]
|
13
12
|
def casks
|
14
13
|
@casks ||= `brew cask ls`.split("\n")
|
15
14
|
end
|
16
15
|
|
17
|
-
|
18
|
-
@casklist ||= casks.map { |cask| yield cask }
|
19
|
-
end
|
20
|
-
|
16
|
+
# @param [Proc]
|
21
17
|
def enumerate
|
22
|
-
|
23
|
-
yield Cask.new(
|
18
|
+
casks.map do |cask|
|
19
|
+
yield Cask.new(cask)
|
24
20
|
end
|
25
21
|
end
|
26
22
|
|
23
|
+
# @param cask_name [String]
|
24
|
+
# @return [BrewCaskTools::Cask]
|
27
25
|
def get(cask_name)
|
28
|
-
|
29
|
-
Cask.new(
|
26
|
+
cask = casks.select { |name| name == cask_name }
|
27
|
+
cask.empty? ? nil : Cask.new(cask.first)
|
30
28
|
end
|
31
29
|
end
|
32
30
|
end
|
data/lib/bct/metadata.rb
CHANGED
data/lib/bct/tasks.rb
CHANGED
@@ -30,16 +30,16 @@ module BrewCaskTools
|
|
30
30
|
Tasks::Outdated.new
|
31
31
|
end
|
32
32
|
|
33
|
-
desc 'upgrade
|
33
|
+
desc 'upgrade CASKS', 'Upgrade a specific cask.' \
|
34
34
|
' If a cask name is omitted, this task will update all outdated casks.'
|
35
|
-
def upgrade(
|
36
|
-
Tasks::Upgrade.new(
|
35
|
+
def upgrade(*casks)
|
36
|
+
Tasks::Upgrade.new(casks)
|
37
37
|
end
|
38
38
|
|
39
|
-
desc 'cleanup
|
39
|
+
desc 'cleanup CASKS', 'clean up old versions of a specific cask. If a ' \
|
40
40
|
'cask name is omitted, this task will cleanup all outdated casks.'
|
41
|
-
def cleanup(
|
42
|
-
Tasks::Cleanup.new(
|
41
|
+
def cleanup(*casks)
|
42
|
+
Tasks::Cleanup.new(casks)
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
data/lib/bct/tasks/caskroom.rb
CHANGED
@@ -14,6 +14,21 @@ module BrewCaskTools
|
|
14
14
|
def progressbar
|
15
15
|
@progressbar ||= ProgressBar.create(title: ' Progress ')
|
16
16
|
end
|
17
|
+
|
18
|
+
def handle(casks, adverb)
|
19
|
+
puts "#{adverb.capitalize} packages\n------------------"
|
20
|
+
yield casks
|
21
|
+
puts "\n"
|
22
|
+
end
|
23
|
+
|
24
|
+
def increment(cask)
|
25
|
+
progressbar.title = " #{cask.name.capitalize} "
|
26
|
+
progressbar.increment
|
27
|
+
end
|
28
|
+
|
29
|
+
def format(headers, output)
|
30
|
+
print_table(output.unshift(headers))
|
31
|
+
end
|
17
32
|
end
|
18
33
|
end
|
19
34
|
end
|
data/lib/bct/tasks/cleanup.rb
CHANGED
@@ -1,55 +1,54 @@
|
|
1
1
|
require 'thor'
|
2
|
-
require 'pry'
|
3
2
|
|
4
3
|
require_relative './caskroom'
|
5
4
|
|
6
5
|
module BrewCaskTools
|
7
6
|
module Tasks
|
8
|
-
# Cleanup
|
7
|
+
# Cleanup task
|
9
8
|
class Cleanup < Caskroom
|
10
|
-
|
9
|
+
# @param optional casks [Array] array of cask names to cleanup
|
10
|
+
def initialize(casks)
|
11
11
|
super()
|
12
12
|
|
13
|
-
|
13
|
+
@cleaned = []
|
14
|
+
|
15
|
+
if casks.empty?
|
14
16
|
progressbar.total = caskroom.casks.length
|
15
17
|
progressbar.log "\nLooking for casks to cleanup..."
|
16
18
|
|
17
|
-
|
19
|
+
@cleaned = compile
|
20
|
+
else
|
21
|
+
@cleaned = casks.map { |c| caskroom.get(c) }
|
22
|
+
return say 'Invalid cask specified', :red if @cleaned.compact.empty?
|
18
23
|
end
|
19
|
-
|
20
|
-
cask = caskroom.get(cask_name)
|
21
|
-
return say 'Invalid cask specified', :red if cask.nil?
|
22
|
-
|
23
|
-
clean_one(cask)
|
24
|
-
end
|
25
|
-
|
26
|
-
def clean_one(cask)
|
27
|
-
return say "#{cask.name.capitalize} does not have any outdated " \
|
28
|
-
'versions. No cleanup operations are necessary', :green unless cask.can_cleanup?
|
29
|
-
|
30
|
-
cask.cleanup(&clean_block)
|
24
|
+
clean
|
31
25
|
end
|
32
26
|
|
33
|
-
def
|
34
|
-
|
35
|
-
|
27
|
+
def compile
|
28
|
+
cleaned = []
|
36
29
|
caskroom.enumerate do |cask|
|
37
|
-
|
38
|
-
progressbar.increment
|
30
|
+
increment(cask)
|
39
31
|
|
40
|
-
|
32
|
+
cleaned << cask if cask.can_cleanup?
|
41
33
|
end
|
34
|
+
cleaned
|
35
|
+
end
|
42
36
|
|
43
|
-
|
37
|
+
def clean
|
38
|
+
return say "\nNo cleanup operations are necessary", :green if @cleaned.empty?
|
44
39
|
|
45
|
-
|
40
|
+
@cleaned.each do |cask|
|
41
|
+
cask.cleanup(&clean_block)
|
42
|
+
end
|
46
43
|
end
|
47
44
|
|
48
45
|
def clean_block
|
49
|
-
proc do |
|
50
|
-
|
51
|
-
|
52
|
-
if
|
46
|
+
proc do |cask, versions|
|
47
|
+
name = cask.name
|
48
|
+
say "Cleaning up #{name}", :yellow
|
49
|
+
if cask.deprecated? &&
|
50
|
+
no?("#{name} has been deprecated. Ok to remove all versions?", :red)
|
51
|
+
|
53
52
|
say 'No action taken.', :red
|
54
53
|
next
|
55
54
|
end
|
data/lib/bct/tasks/outdated.rb
CHANGED
@@ -2,25 +2,23 @@ require_relative './caskroom'
|
|
2
2
|
|
3
3
|
module BrewCaskTools
|
4
4
|
module Tasks
|
5
|
-
# Outdated cask
|
5
|
+
# Outdated cask task
|
6
6
|
class Outdated < Caskroom
|
7
7
|
def initialize
|
8
8
|
super
|
9
9
|
progressbar.total = caskroom.casks.length
|
10
10
|
progressbar.log "\nLooking for outdated casks..."
|
11
|
-
outdated, deprecated = compile
|
11
|
+
@outdated, @deprecated = compile
|
12
12
|
|
13
|
-
outdated
|
14
|
-
deprecated
|
13
|
+
outdated
|
14
|
+
deprecated
|
15
15
|
end
|
16
16
|
|
17
17
|
def compile
|
18
18
|
outdated = []
|
19
19
|
deprecated = []
|
20
|
-
|
21
20
|
caskroom.enumerate do |cask|
|
22
|
-
|
23
|
-
progressbar.increment
|
21
|
+
increment(cask)
|
24
22
|
|
25
23
|
outdated << cask if cask.outdated?
|
26
24
|
deprecated << cask if cask.deprecated?
|
@@ -28,32 +26,26 @@ module BrewCaskTools
|
|
28
26
|
[outdated, deprecated]
|
29
27
|
end
|
30
28
|
|
31
|
-
def outdated
|
32
|
-
return say "\nThere are no outdated casks", :yellow if
|
33
|
-
handle(casks, 'outdated') do |outdated_casks|
|
34
|
-
outdated_casks.map! do |c|
|
35
|
-
[c.name, c.installed_version, c.current_version]
|
36
|
-
end
|
29
|
+
def outdated
|
30
|
+
return say "\nThere are no outdated casks", :yellow if @outdated.empty?
|
37
31
|
|
38
|
-
|
39
|
-
|
40
|
-
print_table(output)
|
32
|
+
@outdated.map! do |cask|
|
33
|
+
[cask.name, cask.current, cask.candidate]
|
41
34
|
end
|
42
|
-
end
|
43
35
|
|
44
|
-
|
45
|
-
|
46
|
-
handle(casks, 'deprecated') do |dep_casks|
|
47
|
-
dep_casks.map! { |c| [c.name] }
|
48
|
-
output = dep_casks.unshift(['Package'])
|
49
|
-
print_table(output)
|
36
|
+
handle(@outdated, 'outdated') do |outdated|
|
37
|
+
format(['Package', 'Installed Version', 'New Version'], outdated)
|
50
38
|
end
|
51
39
|
end
|
52
40
|
|
53
|
-
def
|
54
|
-
|
55
|
-
|
56
|
-
|
41
|
+
def deprecated
|
42
|
+
return if @deprecated.empty?
|
43
|
+
|
44
|
+
@deprecated.map! { |cask| [cask.name] }
|
45
|
+
|
46
|
+
handle(@deprecated, 'deprecated') do |deprecated|
|
47
|
+
format(['Package'], deprecated)
|
48
|
+
end
|
57
49
|
end
|
58
50
|
end
|
59
51
|
end
|
data/lib/bct/tasks/upgrade.rb
CHANGED
@@ -5,48 +5,50 @@ require_relative './cleanup'
|
|
5
5
|
|
6
6
|
module BrewCaskTools
|
7
7
|
module Tasks
|
8
|
-
# Upgrade
|
8
|
+
# Upgrade task
|
9
9
|
class Upgrade < Caskroom
|
10
|
-
|
10
|
+
# @param optional casks [Array] array of cask names to upgrade
|
11
|
+
def initialize(casks)
|
11
12
|
super()
|
12
13
|
|
13
|
-
|
14
|
+
@upgrade = []
|
15
|
+
|
16
|
+
if casks.empty?
|
14
17
|
progressbar.total = caskroom.casks.length
|
15
18
|
progressbar.log "\nLooking for outdated casks..."
|
16
19
|
|
17
|
-
|
20
|
+
@upgrade = compile
|
21
|
+
else
|
22
|
+
@upgrade = casks.map { |c| caskroom.get(c) }
|
23
|
+
return say 'Invalid cask(s) specified', :red if @upgrade.compact.empty?
|
18
24
|
end
|
19
25
|
|
20
|
-
|
21
|
-
return say 'Invalid cask specified', :red if cask.nil?
|
22
|
-
|
23
|
-
upgrade_one(cask)
|
26
|
+
upgrade
|
24
27
|
end
|
25
28
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
+
# Get list of casks to upgrade
|
30
|
+
# @return [Array] an array of casks to upgrade
|
31
|
+
def compile
|
32
|
+
upgrade = []
|
29
33
|
caskroom.enumerate do |cask|
|
30
|
-
|
31
|
-
progressbar.increment
|
34
|
+
increment(cask)
|
32
35
|
|
33
36
|
next unless cask.outdated?
|
34
37
|
|
35
|
-
|
38
|
+
upgrade << cask
|
36
39
|
progressbar.log "#{cask.info.name}: " \
|
37
|
-
"#{cask.
|
40
|
+
"#{cask.current} ==> #{cask.candidate}"
|
38
41
|
end
|
39
|
-
|
40
|
-
return say 'There are no casks to be upgraded', :green if to_upgrade.empty?
|
41
|
-
|
42
|
-
to_upgrade.each(&:upgrade)
|
43
|
-
|
44
|
-
Tasks::Cleanup.new(nil)
|
42
|
+
upgrade
|
45
43
|
end
|
46
44
|
|
47
|
-
|
48
|
-
|
49
|
-
|
45
|
+
# Upgrade casks
|
46
|
+
def upgrade
|
47
|
+
return say 'There are no casks to be upgraded', :green if @upgrade.empty?
|
48
|
+
@upgrade.each(&:upgrade)
|
49
|
+
|
50
|
+
# Cleanup casks that we upgraded
|
51
|
+
Tasks::Cleanup.new(@upgrade.map(&:name))
|
50
52
|
end
|
51
53
|
end
|
52
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brew-cask-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dave Greene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,16 +28,16 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pry
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '1.7'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.44'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.44'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: thor
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -95,19 +109,19 @@ dependencies:
|
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '1.8'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
112
|
+
name: versionomy
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|
100
114
|
requirements:
|
101
115
|
- - "~>"
|
102
116
|
- !ruby/object:Gem::Version
|
103
|
-
version: '0.
|
117
|
+
version: '0.5'
|
104
118
|
type: :runtime
|
105
119
|
prerelease: false
|
106
120
|
version_requirements: !ruby/object:Gem::Requirement
|
107
121
|
requirements:
|
108
122
|
- - "~>"
|
109
123
|
- !ruby/object:Gem::Version
|
110
|
-
version: '0.
|
124
|
+
version: '0.5'
|
111
125
|
description: A tiny tool that provides some missing functionality in Homebrew Cask.
|
112
126
|
email:
|
113
127
|
- davepgreene@gmail.com
|
@@ -122,6 +136,8 @@ files:
|
|
122
136
|
- lib/bct.rb
|
123
137
|
- lib/bct/cask.rb
|
124
138
|
- lib/bct/cask/info.rb
|
139
|
+
- lib/bct/cask/version.rb
|
140
|
+
- lib/bct/cask/versions.rb
|
125
141
|
- lib/bct/caskroom.rb
|
126
142
|
- lib/bct/metadata.rb
|
127
143
|
- lib/bct/tasks.rb
|
@@ -129,7 +145,6 @@ files:
|
|
129
145
|
- lib/bct/tasks/cleanup.rb
|
130
146
|
- lib/bct/tasks/outdated.rb
|
131
147
|
- lib/bct/tasks/upgrade.rb
|
132
|
-
- lib/bct/util.rb
|
133
148
|
homepage: https://github.com/davepgreene/brew-cask-tools
|
134
149
|
licenses:
|
135
150
|
- MIT
|
@@ -142,7 +157,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
142
157
|
requirements:
|
143
158
|
- - ">="
|
144
159
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
160
|
+
version: '2.1'
|
146
161
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
162
|
requirements:
|
148
163
|
- - ">="
|
data/lib/bct/util.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
require 'pathname'
|
2
|
-
|
3
|
-
module BrewCaskTools
|
4
|
-
##
|
5
|
-
# Shared helper methods
|
6
|
-
##
|
7
|
-
module Util
|
8
|
-
GEM_PATH = Pathname.new(__FILE__).join('../../..').expand_path
|
9
|
-
|
10
|
-
class << self
|
11
|
-
##
|
12
|
-
# Transform helpers
|
13
|
-
##
|
14
|
-
def to_array(arg)
|
15
|
-
arg.is_a?(Array) ? arg : [arg]
|
16
|
-
end
|
17
|
-
|
18
|
-
##
|
19
|
-
# Relative path from working directory
|
20
|
-
##
|
21
|
-
def relative_path(*relative)
|
22
|
-
Pathname.pwd.join(*relative.flatten.map(&:to_s)).expand_path
|
23
|
-
end
|
24
|
-
|
25
|
-
def source_path(*relative)
|
26
|
-
GEM_PATH.join(*relative.flatten.map(&:to_s)).expand_path
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|