bcupgrade 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ab3c58c81ca7be4b743ff6e3ad5a64636e977ec
4
- data.tar.gz: 01d91d4560d1a5f61ecfa60fb6cdc8396b824c13
3
+ metadata.gz: 340ebfae5d304dec32c1d4241b7c10e54ddba640
4
+ data.tar.gz: 9edaa6ed2d1b12a418a15f8636cd1e0a89550e48
5
5
  SHA512:
6
- metadata.gz: 674fb0e0d0c7ce5688cc8443948fec868916adbfc633ce02e4d1a310b2af04c8b19a6f85c1549b7b709947f000f2798fb50360d847db623a7c8a087c097738b1
7
- data.tar.gz: 83fac719ce85036f9f5bfe92186f27a18db6f0024a450e7f774b06daf8702f6df21486bcaa4a6430108edb83f6c9ab65f36084db8f0a27b0ab5cd46e914deac6
6
+ metadata.gz: 9811c99363f600c7d6e466d1c2088809e3f0fbad707549ed37a4c8107f1dc5a3371ac87c54470278e16556af848c98d6e59a9e177826aaeebdc78ffb412f6372
7
+ data.tar.gz: 566fcda0c43fa53ad4ead0cd4f8fda3203b0a0f4d438981a630520dffd497873f6faaa75cd477a5bd1a09916fa6d4f529849ba14578b62d33eed258405be31ed
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Bcupgrade - brew cask upgrade
1
+ # Bcupgrade - brew cask upgrade [![Gem Version](https://badge.fury.io/rb/bcupgrade.svg)](https://badge.fury.io/rb/bcupgrade)
2
2
 
3
3
  Upgrade all installed brew casks.
4
4
 
@@ -11,7 +11,7 @@ This script uses `brew cask info` result.
11
11
 
12
12
  ```
13
13
  % brew cask info atom
14
- atom: 1.10.1
14
+ atom: 1.10.2
15
15
  https://atom.io/
16
16
  /usr/local/Caskroom/atom/1.7.3 (does not exist)
17
17
  /usr/local/Caskroom/atom/1.8.0 (68B)
@@ -31,18 +31,24 @@ Atom.app (app)
31
31
 
32
32
  ## Usage
33
33
 
34
- % bcupgrade
34
+ ```
35
+ % bcupgrade -h
36
+ Usage: bcupgrade [options]
37
+ -v, --version Show version number
38
+ --dry-run Show output without running
39
+ ```
35
40
 
36
- `bcupgrade` displays a confirmation prompt \[y/n\] when it attempts to re-install.
41
+ `bcupgrade` displays a confirmation prompt `[y/n]` when it attempts to re-install.
37
42
 
38
43
  ```
39
44
  % bcupgrade
40
45
 
41
- Create cask list...
46
+ Check brew cask list...
42
47
  ["1password", "alfred", "atom", "bartender"]
43
48
 
44
- Check update cask...
45
- ["1password" "atom"]
49
+ Check the latest available version...
50
+ 1password / 6.3.2
51
+ atom / 1.10.2
46
52
 
47
53
  Upgrade 1password? [y/n] n
48
54
 
@@ -62,6 +68,25 @@ complete
62
68
  🍺 atom was successfully installed!
63
69
  ```
64
70
 
71
+ - Remove previous versions.
72
+ `rm -rf /usr/local/Caskroom/#{cask}`
73
+ - Install latest version.
74
+ `brew cask install --force #{cask}`
75
+
76
+ ```
77
+ % brew cask info atom
78
+ atom: 1.10.2
79
+ https://atom.io/
80
+ /usr/local/Caskroom/atom/1.10.2 (68B)
81
+ From: https://github.com/caskroom/homebrew-cask/blob/master/Casks/atom.rb
82
+ ==> Name
83
+ Github Atom
84
+ ==> Artifacts
85
+ Atom.app (app)
86
+ /Applications/Atom.app/Contents/Resources/app/apm/node_modules/.bin/apm (binary)
87
+ /Applications/Atom.app/Contents/Resources/app/atom.sh (binary)
88
+ ```
89
+
65
90
  ## Development
66
91
 
67
92
  After checking out the repo, run `bin/setup` to install dependencies.
data/exe/bcupgrade CHANGED
@@ -4,36 +4,22 @@ require 'bcupgrade'
4
4
  require 'optparse'
5
5
  require 'readline'
6
6
 
7
- # Show version
8
- option_parser = OptionParser.new
9
- option_parser.on('-v', '--version',
10
- 'Show version number') do
11
- puts Bcupgrade::VERSION
12
- exit
13
- end
14
- option_parser.parse!(ARGV)
15
-
16
- # Create cask list
17
- puts "\nCreate cask list...\n"
18
- list = `brew cask list`
19
- casks = list.delete(' (!)').split("\n")
20
- puts "#{casks}\n"
21
-
22
- # Check update cask
23
- puts "\nCheck update cask...\n"
24
- update_casks = Bcupgrade.check_update(casks)
25
- puts "#{update_casks}\n"
7
+ OptionParser.new do |opt|
8
+ begin
9
+ opt.on('-v', '--version', 'Show version number') do
10
+ puts Bcupgrade::VERSION
11
+ exit
12
+ end
13
+ opt.on('--dry-run', 'Show output without running') do
14
+ opt.parse!(ARGV)
15
+ Bcupgrade.run
16
+ exit
17
+ end
26
18
 
27
- # Upgrade cask
28
- if update_casks.any?
29
- update_casks.each do |cask|
30
- input = Readline.readline("\nUpgrade #{cask}? [y/n] ")
31
- next unless input == 'y'
32
- puts "remove #{cask}"
33
- system "rm -rf /usr/local/Caskroom/#{cask}"
34
- puts "install #{cask}"
35
- system "brew cask install --force #{cask}"
19
+ opt.parse!(ARGV)
20
+ Bcupgrade.run(true)
21
+ rescue => e
22
+ puts e.to_s
23
+ exit
36
24
  end
37
- else
38
- puts "\nAlready up-to-date."
39
25
  end
@@ -0,0 +1,19 @@
1
+ module Bcupgrade
2
+ CASKROOM_PATH = '/usr/local/Caskroom'.freeze
3
+
4
+ def self.brew_cask_list
5
+ `brew cask list`
6
+ end
7
+
8
+ def self.brew_cask_info(cask)
9
+ `brew cask info #{cask}`
10
+ end
11
+
12
+ def self.brew_cask_remove(cask)
13
+ system "rm -rf #{CASKROOM_PATH}/#{cask}"
14
+ end
15
+
16
+ def self.brew_cask_install(cask)
17
+ system "brew cask install --force #{cask}"
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module Bcupgrade
2
- VERSION = "0.1.0"
2
+ VERSION = '0.1.1'.freeze
3
3
  end
data/lib/bcupgrade.rb CHANGED
@@ -1,16 +1,55 @@
1
1
  require 'bcupgrade/version'
2
+ require 'bcupgrade/brew_cask'
2
3
 
3
4
  module Bcupgrade
4
- def self.check_update(casks)
5
- update_casks = []
5
+ def self.check_list
6
+ Bcupgrade.brew_cask_list.delete(' (!)').split("\n")
7
+ end
8
+
9
+ def self.check_version(cask)
10
+ cask_info = Bcupgrade.brew_cask_info(cask)
11
+ lines = cask_info.split(/\n/)
12
+ latest_version = lines[0].gsub(/.+: (.+)/, '\1')
13
+ installed_path = "#{Bcupgrade::CASKROOM_PATH}/#{cask}/#{latest_version}"
14
+
15
+ cask_info.include?(installed_path) ? nil : latest_version
16
+ end
17
+
18
+ def self.upgrade(casks)
6
19
  casks.each do |cask|
7
- info = `brew cask info #{cask}`
8
- lines = info.split(/\n/)
9
- version = lines[0].gsub(/.+: (.+)/, '\1')
20
+ input = Readline.readline("\nUpgrade #{cask}? [y/n] ")
21
+ next unless input == 'y'
22
+ puts "remove #{cask}"
23
+ Bcupgrade.brew_cask_remove(cask)
24
+ puts "install #{cask}"
25
+ Bcupgrade.brew_cask_install(cask)
26
+ end
27
+ end
28
+
29
+ def self.run(option = false)
30
+ # Check cask list
31
+ puts "\nCheck brew cask list...\n"
32
+ installed_casks = Bcupgrade.check_list
33
+ puts "#{installed_casks}\n"
34
+
35
+ # Check cask version
36
+ puts "\nCheck the latest available version...\n"
37
+ update_casks = []
38
+ installed_casks.each do |cask|
39
+ latest_version = Bcupgrade.check_version(cask)
40
+ if latest_version
41
+ puts "#{cask} / #{latest_version}"
42
+ update_casks.push(cask)
43
+ end
44
+ end
10
45
 
11
- installed_path = "/usr/local/Caskroom/#{cask}/#{version}"
12
- update_casks.push(cask) unless info.include?(installed_path)
46
+ if option
47
+ # Upgrade cask
48
+ if update_casks.any?
49
+ Bcupgrade.upgrade(update_casks)
50
+ else
51
+ puts "\nAlready up-to-date."
52
+ end
13
53
  end
14
- update_casks
15
54
  end
16
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bcupgrade
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - DriftwoodJP
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-09-12 00:00:00.000000000 Z
11
+ date: 2016-09-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -73,6 +73,7 @@ files:
73
73
  - bin/setup
74
74
  - exe/bcupgrade
75
75
  - lib/bcupgrade.rb
76
+ - lib/bcupgrade/brew_cask.rb
76
77
  - lib/bcupgrade/version.rb
77
78
  homepage: https://github.com/DriftwoodJP/bcupgrade
78
79
  licenses: