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 +4 -4
- data/.gitignore +1 -0
- data/Gemfile +1 -0
- data/boxy.gemspec +3 -9
- data/lib/boxy.rb +31 -2
- data/lib/boxy/mkdirs.rb +16 -0
- data/lib/boxy/version.rb +1 -1
- metadata +48 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96ea93773f02924916551a0d4e4a8bea59993af1
|
4
|
+
data.tar.gz: a87b14c7e396a350ae37ac92f5c691c82ce0741b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 715fc9ada77415f47b9a726dd996c44cb6e1ff4c76f1f16c8ccad98afcc2229d49efb50cd0311c18fc342101e9d720a7179d263ab3e40885a965534341aaf096
|
7
|
+
data.tar.gz: 52321a4cb6cfe41d9bb0e3c53e606df9f8f7b64c25db1f6912776146562d41e3841a03ea46c78f4e8b73c9893081776337ece6246c19dd4a304e9a74ab3e98e4
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/boxy.gemspec
CHANGED
@@ -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"
|
data/lib/boxy.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'boxy/version'
|
2
2
|
require 'boxy/dsl'
|
3
|
-
require '
|
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
|
-
|
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
|
|
data/lib/boxy/mkdirs.rb
ADDED
@@ -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
|
data/lib/boxy/version.rb
CHANGED
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.
|
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-
|
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:
|
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.
|
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:
|