boxy 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce72258b164430e416cd87f325064ca8af6956e2
4
- data.tar.gz: cc283f2206924597fe0852ebfb75a6f8657045dd
3
+ metadata.gz: 96ea93773f02924916551a0d4e4a8bea59993af1
4
+ data.tar.gz: a87b14c7e396a350ae37ac92f5c691c82ce0741b
5
5
  SHA512:
6
- metadata.gz: 5094b144675398051ffe6d15fed47a7afef1981c78134f87457b362563c6df32c627ee75c57c78c63feccb66ccfc769b0641d6018d4ac76d10766b7f13b51df6
7
- data.tar.gz: 64d42f51bc09d4f863f1ab202b1866566ab46ba58611d8fb6bad557abdf0b2bc0163b20f28e6cfbf00be9452fcef6227530e0843a7bfc5a677d40bd825b70911
6
+ metadata.gz: 715fc9ada77415f47b9a726dd996c44cb6e1ff4c76f1f16c8ccad98afcc2229d49efb50cd0311c18fc342101e9d720a7179d263ab3e40885a965534341aaf096
7
+ data.tar.gz: 52321a4cb6cfe41d9bb0e3c53e606df9f8f7b64c25db1f6912776146562d41e3841a03ea46c78f4e8b73c9893081776337ece6246c19dd4a304e9a74ab3e98e4
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  *.a
14
14
  mkmf.log
15
15
  vendor
16
+ *.sw[op]
data/Gemfile CHANGED
@@ -5,4 +5,5 @@ gemspec
5
5
 
6
6
  gem 'pry'
7
7
  gem 'defaulty', github: 'fooheads/defaulty', branch: 'master'
8
+ gem 'mkdirs', github: 'fooheads/mkdirs', branch: 'master'
8
9
 
@@ -13,21 +13,15 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://github.com/fooheads/boxy"
14
14
  spec.license = "MIT"
15
15
 
16
- # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
17
- # delete this section to allow pushing this gem to any host.
18
- if spec.respond_to?(:metadata)
19
- spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
20
- else
21
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
22
- end
23
-
24
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
17
  spec.bindir = "exe"
26
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
19
  spec.require_paths = ["lib"]
28
20
 
29
- spec.add_dependency "table_print"
30
21
  spec.add_dependency "defaulty"
22
+ spec.add_dependency "mkdirs"
23
+ spec.add_dependency "table_print"
24
+ spec.add_dependency "highline"
31
25
 
32
26
  spec.add_development_dependency "bundler", "~> 1.10"
33
27
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,6 +1,6 @@
1
1
  require 'boxy/version'
2
2
  require 'boxy/dsl'
3
- require 'bundler'
3
+ require 'highline'
4
4
 
5
5
  module Boxy
6
6
  def self.load_commands(url)
@@ -16,9 +16,11 @@ module Boxy
16
16
 
17
17
 
18
18
  def self.install(commands)
19
+ ensure_homebrew_installed
20
+
19
21
  commands.each do |command|
20
22
  handler = @@handlers[command.type]
21
- Bundler.with_clean_env do
23
+ with_clean_env do
22
24
  handler.install(command.name, command.options)
23
25
  end
24
26
  end
@@ -28,6 +30,32 @@ module Boxy
28
30
  @@handlers ||= {}
29
31
  @@handlers[type] = handler
30
32
  end
33
+
34
+ private
35
+
36
+
37
+ def self.ensure_homebrew_installed
38
+ installed = system 'which brew'
39
+ if not installed
40
+ cli = HighLine.new
41
+ do_install = cli.agree 'Homebrew is not installed, would you like to install it now? (y/n):'
42
+ if do_install
43
+ system '/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"'
44
+ else
45
+ exit -1
46
+ end
47
+ end
48
+ end
49
+
50
+ def self.with_clean_env(&block)
51
+ begin
52
+ require 'bundler'
53
+ Bundler.with_clean_env(&block)
54
+ rescue LoadError
55
+ yield
56
+ end
57
+ end
58
+
31
59
  end
32
60
 
33
61
  require 'boxy/brew'
@@ -35,4 +63,5 @@ require 'boxy/brew_cask'
35
63
  require 'boxy/defaulty'
36
64
  require 'boxy/homesick'
37
65
  require 'boxy/luarock'
66
+ require 'boxy/mkdirs'
38
67
 
@@ -0,0 +1,16 @@
1
+ require 'mkdirs'
2
+
3
+ module Boxy
4
+ class MkdirsHandler
5
+ def install(dirs_file, options)
6
+ config_file = ARGV[1]
7
+ config_dir = File.dirname(config_file)
8
+ root_dir = options[:root_dir] || ENV['HOME']
9
+
10
+ puts "mkdirs #{dirs_file} #{root_dir}"
11
+ Mkdirs.apply_filename(File.join(config_dir, dirs_file), root_dir)
12
+ end
13
+ end
14
+
15
+ Boxy.register(:mkdirs, MkdirsHandler.new)
16
+ end
@@ -1,3 +1,3 @@
1
1
  module Boxy
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon-Erling Dahl
@@ -9,76 +9,104 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-02-11 00:00:00.000000000 Z
12
+ date: 2016-08-25 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: defaulty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: mkdirs
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
14
42
  - !ruby/object:Gem::Dependency
15
43
  name: table_print
16
44
  requirement: !ruby/object:Gem::Requirement
17
45
  requirements:
18
- - - '>='
46
+ - - ">="
19
47
  - !ruby/object:Gem::Version
20
48
  version: '0'
21
49
  type: :runtime
22
50
  prerelease: false
23
51
  version_requirements: !ruby/object:Gem::Requirement
24
52
  requirements:
25
- - - '>='
53
+ - - ">="
26
54
  - !ruby/object:Gem::Version
27
55
  version: '0'
28
56
  - !ruby/object:Gem::Dependency
29
- name: defaulty
57
+ name: highline
30
58
  requirement: !ruby/object:Gem::Requirement
31
59
  requirements:
32
- - - '>='
60
+ - - ">="
33
61
  - !ruby/object:Gem::Version
34
62
  version: '0'
35
63
  type: :runtime
36
64
  prerelease: false
37
65
  version_requirements: !ruby/object:Gem::Requirement
38
66
  requirements:
39
- - - '>='
67
+ - - ">="
40
68
  - !ruby/object:Gem::Version
41
69
  version: '0'
42
70
  - !ruby/object:Gem::Dependency
43
71
  name: bundler
44
72
  requirement: !ruby/object:Gem::Requirement
45
73
  requirements:
46
- - - ~>
74
+ - - "~>"
47
75
  - !ruby/object:Gem::Version
48
76
  version: '1.10'
49
77
  type: :development
50
78
  prerelease: false
51
79
  version_requirements: !ruby/object:Gem::Requirement
52
80
  requirements:
53
- - - ~>
81
+ - - "~>"
54
82
  - !ruby/object:Gem::Version
55
83
  version: '1.10'
56
84
  - !ruby/object:Gem::Dependency
57
85
  name: rake
58
86
  requirement: !ruby/object:Gem::Requirement
59
87
  requirements:
60
- - - ~>
88
+ - - "~>"
61
89
  - !ruby/object:Gem::Version
62
90
  version: '10.0'
63
91
  type: :development
64
92
  prerelease: false
65
93
  version_requirements: !ruby/object:Gem::Requirement
66
94
  requirements:
67
- - - ~>
95
+ - - "~>"
68
96
  - !ruby/object:Gem::Version
69
97
  version: '10.0'
70
98
  - !ruby/object:Gem::Dependency
71
99
  name: rspec
72
100
  requirement: !ruby/object:Gem::Requirement
73
101
  requirements:
74
- - - '>='
102
+ - - ">="
75
103
  - !ruby/object:Gem::Version
76
104
  version: '0'
77
105
  type: :development
78
106
  prerelease: false
79
107
  version_requirements: !ruby/object:Gem::Requirement
80
108
  requirements:
81
- - - '>='
109
+ - - ">="
82
110
  - !ruby/object:Gem::Version
83
111
  version: '0'
84
112
  description:
@@ -90,7 +118,7 @@ executables:
90
118
  extensions: []
91
119
  extra_rdoc_files: []
92
120
  files:
93
- - .gitignore
121
+ - ".gitignore"
94
122
  - CODE_OF_CONDUCT.md
95
123
  - Gemfile
96
124
  - LICENSE.txt
@@ -108,30 +136,31 @@ files:
108
136
  - lib/boxy/dsl.rb
109
137
  - lib/boxy/homesick.rb
110
138
  - lib/boxy/luarock.rb
139
+ - lib/boxy/mkdirs.rb
111
140
  - lib/boxy/version.rb
112
141
  homepage: https://github.com/fooheads/boxy
113
142
  licenses:
114
143
  - MIT
115
- metadata:
116
- allowed_push_host: 'TODO: Set to ''http://mygemserver.com'''
144
+ metadata: {}
117
145
  post_install_message:
118
146
  rdoc_options: []
119
147
  require_paths:
120
148
  - lib
121
149
  required_ruby_version: !ruby/object:Gem::Requirement
122
150
  requirements:
123
- - - ~>
151
+ - - "~>"
124
152
  - !ruby/object:Gem::Version
125
153
  version: '2.0'
126
154
  required_rubygems_version: !ruby/object:Gem::Requirement
127
155
  requirements:
128
- - - '>='
156
+ - - ">="
129
157
  - !ruby/object:Gem::Version
130
158
  version: '0'
131
159
  requirements: []
132
160
  rubyforge_project:
133
- rubygems_version: 2.0.14
161
+ rubygems_version: 2.4.5.1
134
162
  signing_key:
135
163
  specification_version: 4
136
164
  summary: Automates installation of mac computers
137
165
  test_files: []
166
+ has_rdoc: