brewdler 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -15,3 +15,5 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .ruby-gemset
19
+ .ruby-version
data/Readme.mdown CHANGED
@@ -4,12 +4,14 @@ Bundler for non-ruby dependencies from homebrew
4
4
 
5
5
  [![Gem Version](https://badge.fury.io/rb/brewdler.png)](http://badge.fury.io/rb/brewdler)
6
6
  [![Dependency Status](https://gemnasium.com/andrew/brewdler.png)](https://gemnasium.com/andrew/brewdler)
7
- [![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/andrew/brewdler)
7
+ [![Code Climate](https://codeclimate.com/github/andrew/brewdler.png)](https://codeclimate.com/github/andrew/brewdler)
8
8
 
9
9
  ## Requirements
10
10
 
11
11
  [Homebrew](http://github.com/mxcl/homebrew) is used for installing the dependencies, it only works on a mac and so does this gem.
12
12
 
13
+ [Homebrew-cask](http://github.com/phinze/homebrew-cask) is optional and used for installing Mac applications.
14
+
13
15
  ## Usage
14
16
 
15
17
  Install using rubygems:
@@ -22,11 +24,12 @@ then create a `Brewfile` in the root of your project:
22
24
 
23
25
  Then list your homebrew based dependencies in your `Brewfile`:
24
26
 
25
- redis
26
- mongodb
27
- sphinx
28
- imagemagick
29
- mysql
27
+ brew 'redis'
28
+ brew 'mongodb'
29
+ brew 'sphinx'
30
+ brew 'imagemagick'
31
+ brew 'mysql'
32
+ cask 'google-chrome'
30
33
 
31
34
  You can then easily install all of the dependencies on a new mac like so:
32
35
 
@@ -57,4 +60,4 @@ Report Issues/Feature requests on [GitHub Issues](http://github.com/andrew/brewd
57
60
 
58
61
  ## Copyright
59
62
 
60
- Copyright (c) 2013 Andrew Nesbitt. See LICENSE for details.
63
+ Copyright (c) 2013 Andrew Nesbitt. See LICENSE for details.
data/bin/brewdle CHANGED
@@ -11,67 +11,18 @@ default_command :install
11
11
  command :install do |c|
12
12
  c.description = 'Install all homebrew based dependecies'
13
13
  c.action do |args, options|
14
-
15
14
  begin
16
- dependencies = File.open(File.join(Dir.pwd, 'Brewfile')).find_all { |line|
17
- line.chomp!
18
- line.length > 0 && !comment?(line)
19
- }
20
- rescue
15
+ file = File.read(File.join(Dir.pwd, "Brewfile"))
16
+ Brewdler::Dsl.new(file).process
17
+ rescue Errno::ENOENT => e
21
18
  puts 'No Brewfile found'
22
- end
23
-
24
- missing_formulae = dependencies.find_all { |dependency|
25
- !formula_exists?(dependency)
26
- }
27
-
28
- if missing_formulae.empty?
29
- dependencies.each do |dependency|
30
- if installed?(dependency)
31
- puts "Using #{dependency} (#{installed_version(dependency)})"
32
- else
33
- puts "Installing #{dependency} (#{formula_version(dependency)})"
34
- install(dependency)
35
- end
19
+ puts e.message
20
+ rescue NameError
21
+ file = File.open(File.join(Dir.pwd, "Brewfile"))
22
+ file.find_all do |name|
23
+ name.chomp!
24
+ Brewdler::BrewInstaller.install(name) if name.length > 0 && name !~ /^ *#/
36
25
  end
37
- puts "All dependencies installed"
38
- else
39
- puts "Non-existent formula/e: #{missing_formulae.join(', ')}"
40
- puts "(please check spelling in Brewfile, and/or run 'brew update')"
41
26
  end
42
-
43
27
  end
44
28
  end
45
-
46
- def install(name)
47
- brewable = `brew info #{name}`
48
- if brewable[0..4] != 'Error'
49
- system "brew install #{name}"
50
- else
51
- puts "Error: No available formula for #{name}"
52
- end
53
- end
54
-
55
- def formula_exists?(name)
56
- formula_location = File.join(`brew --prefix`.chomp, 'Library', 'Formula', name + ".rb")
57
- File.exists? formula_location
58
- end
59
-
60
- def installed?(name)
61
- installed_version = `brew list --versions #{name}`.chomp
62
- !installed_version.empty?
63
- end
64
-
65
- def installed_version(name)
66
- installed_version = `brew list --versions #{name}`.chomp
67
- installed_version.match(/#{name} ([^\s]+)/)[1]
68
- end
69
-
70
- def formula_version(name)
71
- formula_version = `brew info #{name}`
72
- formula_version.split($/).first.match(/#{name}: stable ([^\s,]+)/)[1]
73
- end
74
-
75
- def comment?(line)
76
- line =~ /^ *#/
77
- end
data/brewdler.gemspec CHANGED
@@ -2,8 +2,8 @@
2
2
  require File.expand_path('../lib/brewdler/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Andrew Nesbitt"]
6
- gem.email = ["andrewnez@gmail.com"]
5
+ gem.authors = ["Andrew Nesbitt", "James A. Anderson", "Amos King"]
6
+ gem.email = ["andrewnez@gmail.com", "me@jamesaanderson.com", "amos.l.king@gmail.com"]
7
7
  gem.summary = %q{Bundler for non-ruby dependencies from homebrew}
8
8
 
9
9
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
data/lib/brewdler.rb CHANGED
@@ -1 +1,4 @@
1
- require "brewdler/version"
1
+ require "brewdler/version"
2
+ require "brewdler/dsl"
3
+ require "brewdler/brew_installer"
4
+ require "brewdler/cask_installer"
@@ -0,0 +1,7 @@
1
+ module Brewdler
2
+ class BrewInstaller
3
+ def self.install(name)
4
+ `brew install #{name}`
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Brewdler
2
+ class CaskInstaller
3
+ def self.install(name)
4
+ `brew cask install #{name}`
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,19 @@
1
+ module Brewdler
2
+ class Dsl
3
+ def initialize(input)
4
+ @input = input
5
+ end
6
+
7
+ def process
8
+ instance_eval(@input)
9
+ end
10
+
11
+ def brew(name)
12
+ Brewdler::BrewInstaller.install(name)
13
+ end
14
+
15
+ def cask(name)
16
+ Brewdler::CaskInstaller.install(name)
17
+ end
18
+ end
19
+ end
@@ -1,3 +1,3 @@
1
1
  module Brewdler
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.0"
3
3
  end
metadata CHANGED
@@ -1,19 +1,21 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brewdler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Andrew Nesbitt
9
+ - James A. Anderson
10
+ - Amos King
9
11
  autorequire:
10
12
  bindir: bin
11
13
  cert_chain: []
12
- date: 2013-03-11 00:00:00.000000000 Z
14
+ date: 2013-06-10 00:00:00.000000000 Z
13
15
  dependencies:
14
16
  - !ruby/object:Gem::Dependency
15
17
  name: commander
16
- requirement: &70296410699500 !ruby/object:Gem::Requirement
18
+ requirement: !ruby/object:Gem::Requirement
17
19
  none: false
18
20
  requirements:
19
21
  - - ! '>='
@@ -21,10 +23,17 @@ dependencies:
21
23
  version: '0'
22
24
  type: :runtime
23
25
  prerelease: false
24
- version_requirements: *70296410699500
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ! '>='
30
+ - !ruby/object:Gem::Version
31
+ version: '0'
25
32
  description:
26
33
  email:
27
34
  - andrewnez@gmail.com
35
+ - me@jamesaanderson.com
36
+ - amos.l.king@gmail.com
28
37
  executables:
29
38
  - brewdle
30
39
  extensions: []
@@ -39,6 +48,9 @@ files:
39
48
  - bin/brewdle
40
49
  - brewdler.gemspec
41
50
  - lib/brewdler.rb
51
+ - lib/brewdler/brew_installer.rb
52
+ - lib/brewdler/cask_installer.rb
53
+ - lib/brewdler/dsl.rb
42
54
  - lib/brewdler/version.rb
43
55
  homepage:
44
56
  licenses: []
@@ -60,9 +72,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
72
  version: '0'
61
73
  requirements: []
62
74
  rubyforge_project:
63
- rubygems_version: 1.8.11
75
+ rubygems_version: 1.8.23
64
76
  signing_key:
65
77
  specification_version: 3
66
78
  summary: Bundler for non-ruby dependencies from homebrew
67
79
  test_files: []
68
- has_rdoc: