litterbox 0.3.0 → 0.4.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
  SHA256:
3
- metadata.gz: 3eda4f4ada736e15a277ede973994848ebe0c6b35d49ff2323707a725546e111
4
- data.tar.gz: 50232f31ac28b039aad30f0cefbd68ca91adcfc0cf624a032140b612e138cd3a
3
+ metadata.gz: 8901f6009920454e627dbbcbac7fccbfcf7b507c32f558dcc83b74392741c2af
4
+ data.tar.gz: 4f6101fa7a3f3375616c87fb0b189438c160caff2995a0463dafac36c3c09a60
5
5
  SHA512:
6
- metadata.gz: 9af4a8b63d4422faf5c432db0efa1188f24e7ab3c854ce27d7ee04326408da6e17a8507d7b7f5b1fd2b7c05dae7b1a5e2950c3d9fceb478b2d229ad3319a0473
7
- data.tar.gz: 510cd5be78acc6879d5a84fe0f60838fa1e95f0b5dd40cec36e5d4a57ac96b366d45f203a8c420b4fba6af15fb208aeb7ca7ab4762ee729038a7d095a3091612
6
+ metadata.gz: b5b329f680df4b51effcce343bb16177e7db62fdaa650f45095493ee5b4bfca97f47be2c0d4466a4139a001c33e7560ed9cc06bcbc43ccea6bcc45c55540e1f8
7
+ data.tar.gz: 148c49d1381863fb220c767cceadcee518f660743feb8cee26969bdc70a07e263e5f04ffd444c57339f04b53ff5867deef3e5af493559b5a0e82d18cb045df58
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- litterbox (0.1.5)
5
- thor (~> 0.20.0)
4
+ litterbox (0.4.0)
5
+ thor
6
+ toml
6
7
 
7
8
  GEM
8
9
  remote: https://rubygems.org/
@@ -16,10 +17,10 @@ GEM
16
17
  term-ansicolor
17
18
  thor
18
19
  diff-lcs (1.3)
19
- docile (1.3.0)
20
+ docile (1.3.1)
20
21
  domain_name (0.5.20180417)
21
22
  unf (>= 0.0.5, < 1.0.0)
22
- ffi (1.9.23)
23
+ ffi (1.9.25)
23
24
  formatador (0.2.5)
24
25
  guard (2.14.2)
25
26
  formatador (>= 0.2.4)
@@ -40,11 +41,11 @@ GEM
40
41
  rb-fsevent (~> 0.9, >= 0.9.4)
41
42
  rb-inotify (~> 0.9, >= 0.9.7)
42
43
  ruby_dep (~> 1.2)
43
- lumberjack (1.0.12)
44
+ lumberjack (1.0.13)
44
45
  method_source (0.9.0)
45
- mime-types (3.1)
46
+ mime-types (3.2.2)
46
47
  mime-types-data (~> 3.2015)
47
- mime-types-data (3.2016.0521)
48
+ mime-types-data (3.2018.0812)
48
49
  multi_json (1.13.1)
49
50
  nenv (0.3.0)
50
51
  netrc (0.11.0)
@@ -52,34 +53,35 @@ GEM
52
53
  nenv (~> 0.1)
53
54
  shellany (~> 0.0)
54
55
  parallel (1.12.1)
55
- parser (2.5.0.2)
56
+ parser (2.5.1.2)
56
57
  ast (~> 2.4.0)
57
- powerpack (0.1.1)
58
+ parslet (1.8.2)
59
+ powerpack (0.1.2)
58
60
  pry (0.11.3)
59
61
  coderay (~> 1.1.0)
60
62
  method_source (~> 0.9.0)
61
63
  rainbow (3.0.0)
62
64
  rake (10.5.0)
63
- rb-fsevent (0.10.2)
65
+ rb-fsevent (0.10.3)
64
66
  rb-inotify (0.9.10)
65
67
  ffi (>= 0.5.0, < 2)
66
68
  rest-client (2.0.2)
67
69
  http-cookie (>= 1.0.2, < 2.0)
68
70
  mime-types (>= 1.16, < 4.0)
69
71
  netrc (~> 0.8)
70
- rspec (3.7.0)
71
- rspec-core (~> 3.7.0)
72
- rspec-expectations (~> 3.7.0)
73
- rspec-mocks (~> 3.7.0)
74
- rspec-core (3.7.1)
75
- rspec-support (~> 3.7.0)
76
- rspec-expectations (3.7.0)
72
+ rspec (3.8.0)
73
+ rspec-core (~> 3.8.0)
74
+ rspec-expectations (~> 3.8.0)
75
+ rspec-mocks (~> 3.8.0)
76
+ rspec-core (3.8.0)
77
+ rspec-support (~> 3.8.0)
78
+ rspec-expectations (3.8.1)
77
79
  diff-lcs (>= 1.2.0, < 2.0)
78
- rspec-support (~> 3.7.0)
79
- rspec-mocks (3.7.0)
80
+ rspec-support (~> 3.8.0)
81
+ rspec-mocks (3.8.0)
80
82
  diff-lcs (>= 1.2.0, < 2.0)
81
- rspec-support (~> 3.7.0)
82
- rspec-support (3.7.1)
83
+ rspec-support (~> 3.8.0)
84
+ rspec-support (3.8.0)
83
85
  rubocop (0.52.1)
84
86
  parallel (~> 1.10)
85
87
  parser (>= 2.4.0.2, < 3.0)
@@ -87,7 +89,7 @@ GEM
87
89
  rainbow (>= 2.2.2, < 4.0)
88
90
  ruby-progressbar (~> 1.7)
89
91
  unicode-display_width (~> 1.0, >= 1.0.1)
90
- ruby-progressbar (1.9.0)
92
+ ruby-progressbar (1.10.0)
91
93
  ruby_dep (1.5.0)
92
94
  rubyzip (1.2.1)
93
95
  shellany (0.0.1)
@@ -100,26 +102,28 @@ GEM
100
102
  tins (~> 1.0)
101
103
  thor (0.20.0)
102
104
  tins (1.16.3)
105
+ toml (0.2.0)
106
+ parslet (~> 1.8.0)
103
107
  unf (0.1.4)
104
108
  unf_ext
105
109
  unf_ext (0.0.7.5)
106
- unicode-display_width (1.3.0)
107
- yard (0.9.12)
110
+ unicode-display_width (1.4.0)
111
+ yard (0.9.16)
108
112
 
109
113
  PLATFORMS
110
114
  ruby
111
115
 
112
116
  DEPENDENCIES
113
- bundler (~> 1.16.1)
117
+ bundler
114
118
  coveralls
115
- guard (~> 2.14.2)
116
- guard-rake (~> 1.0.0)
119
+ guard
120
+ guard-rake
117
121
  litterbox!
118
- rake (~> 10.0)
119
- rspec (~> 3.0)
120
- rubocop (~> 0.52.1)
121
- rubyzip (~> 1.2.1)
122
+ rake
123
+ rspec
124
+ rubocop
125
+ rubyzip
122
126
  yard
123
127
 
124
128
  BUNDLED WITH
125
- 1.16.1
129
+ 1.16.3
data/README.md CHANGED
@@ -27,6 +27,32 @@ Or install it yourself as:
27
27
 
28
28
  For API specific usage read the [docs](http://skylerlayne.me/litterbox/)
29
29
 
30
+ ### Profiles
31
+
32
+ A profile essential is a development concept for Habitat, it was born out of the need for multiple habitat depots.
33
+
34
+ To use profiles, you'll need to drop a config file `~/.litterbox` with the following example content
35
+
36
+ ```
37
+ profile = "default"
38
+
39
+ [on-prem]
40
+ origin = "<o-prem origin>"
41
+ auth_token = "<on-prem auth_token>"
42
+ bldr_url = "<on-prem url>"
43
+
44
+ [default]
45
+ origin = "<my origin>"
46
+ auth_token = "<auth_token>"
47
+ bldr_url = "https://bldr.habitat.sh"
48
+ ```
49
+
50
+ To switch between profiles execute the following:
51
+
52
+ ```
53
+ eval "$(litterbox profile set on-prem)"
54
+ ```
55
+
30
56
  ### Build
31
57
 
32
58
  ```
data/lib/litterbox.rb CHANGED
@@ -2,6 +2,7 @@ require 'thor'
2
2
 
3
3
  require 'litterbox/command'
4
4
  require 'litterbox/habitat'
5
+ require 'litterbox/profiles'
5
6
  require 'litterbox/last_build'
6
7
  require 'litterbox/version'
7
8
 
@@ -10,13 +11,46 @@ module Litterbox
10
11
  # Constant to define the name of the last_build file
11
12
  LAST_BUILD = 'last_build.env'.freeze
12
13
 
14
+ # CLI for litterbox
15
+ class ProfileSubcommand < Thor
16
+ desc 'list', 'list profiles'
17
+ def list
18
+ puts Litterbox::Habitat::Profiles.read
19
+ end
20
+
21
+ desc 'set PROFILE', 'Get the configuration'
22
+ def set(profile = nil)
23
+ if profile.nil?
24
+ puts <<-EOF
25
+ To set the profile execute the following:
26
+
27
+ eval "$(litterbox profile set <profile>)"
28
+
29
+ E.g.
30
+ eval "$(litterbox profile set default)"
31
+
32
+ EOF
33
+ else
34
+ puts Litterbox::Habitat::Profiles.set(profile)
35
+ end
36
+ end
37
+ end
38
+
13
39
  # CLI for litterbox
14
40
  class CLI < Thor
41
+ desc 'profile SUBCOMMAND ...ARGS', 'Manages habitat builder profiles'
42
+ subcommand 'profile', ProfileSubcommand
43
+
15
44
  desc 'build PATH', 'build a package at the given path defaults to .'
16
45
  def build(path = '.')
17
46
  Litterbox::Habitat::Build.new(path).build
18
47
  end
19
48
 
49
+ desc 'version', 'print the version of litterbox'
50
+ def version
51
+ puts Litterbox::VERSION
52
+ end
53
+
20
54
  desc 'upload PATH', 'upload the latest build'
21
55
  def upload(path = find_last_build)
22
56
  raise "Could not find last_build.env in #{locations}" unless path
@@ -0,0 +1,7 @@
1
+ require_relative './profiles/profiles'
2
+
3
+ module Litterbox
4
+ # habitat to level module
5
+ module Habitat
6
+ end
7
+ end
@@ -0,0 +1,31 @@
1
+ require 'toml'
2
+
3
+ module Litterbox
4
+ module Habitat
5
+ # Habitat Profile
6
+ class Profiles
7
+ def self.set(profile, file = "#{ENV['HOME']}/.litterbox")
8
+ config = read file
9
+ config['profile'] = profile
10
+ doc = TOML::Generator.new(config).body
11
+ File.write(file, doc)
12
+ env config[profile]
13
+ end
14
+
15
+ def self.read(config = "#{ENV['HOME']}/.litterbox")
16
+ unless File.exist?(config)
17
+ # Create it
18
+ end
19
+ TOML::Parser.new(File.read(config)).parsed
20
+ end
21
+
22
+ def self.env(profile)
23
+ cmd = ''
24
+ cmd << "export HAB_BLDR_URL=\"#{profile['bldr_url']}\"\n" if profile['bldr_url']
25
+ cmd << "export HAB_AUTH_TOKEN=\"#{profile['auth_token']}\"\n" if profile['auth_token']
26
+ cmd << "export HAB_ORIGIN=\"#{profile['origin']}\"\n" if profile['origin']
27
+ cmd
28
+ end
29
+ end
30
+ end
31
+ end
@@ -1,3 +1,3 @@
1
1
  module Litterbox
2
- VERSION = '0.3.0'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
data/litterbox.gemspec CHANGED
@@ -23,13 +23,14 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ['lib']
25
25
 
26
- spec.add_development_dependency 'bundler', '~> 1.16.1'
27
- spec.add_development_dependency 'guard', '~> 2.14.2'
28
- spec.add_development_dependency 'guard-rake', '~> 1.0.0'
29
- spec.add_development_dependency 'rake', '~> 10.0'
30
- spec.add_development_dependency 'rspec', '~> 3.0'
31
- spec.add_development_dependency 'rubocop', '~> 0.52.1'
32
- spec.add_development_dependency 'rubyzip', '~> 1.2.1'
26
+ spec.add_development_dependency 'bundler'
27
+ spec.add_development_dependency 'guard'
28
+ spec.add_development_dependency 'guard-rake'
29
+ spec.add_development_dependency 'rake'
30
+ spec.add_development_dependency 'rspec'
31
+ spec.add_development_dependency 'rubocop'
32
+ spec.add_development_dependency 'rubyzip'
33
33
  spec.add_development_dependency 'yard'
34
- spec.add_dependency 'thor', '~> 0.20.0'
34
+ spec.add_dependency 'thor'
35
+ spec.add_dependency 'toml'
35
36
  end
metadata CHANGED
@@ -1,113 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: litterbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - skylerto
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-03 00:00:00.000000000 Z
11
+ date: 2018-08-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.16.1
19
+ version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.16.1
26
+ version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: guard
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 2.14.2
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: 2.14.2
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: guard-rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 1.0.0
47
+ version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 1.0.0
54
+ version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '3.0'
75
+ version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: '3.0'
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rubocop
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.52.1
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 0.52.1
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: rubyzip
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.2.1
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.2.1
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: yard
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -126,16 +126,30 @@ dependencies:
126
126
  name: thor
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: toml
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
130
144
  - !ruby/object:Gem::Version
131
- version: 0.20.0
145
+ version: '0'
132
146
  type: :runtime
133
147
  prerelease: false
134
148
  version_requirements: !ruby/object:Gem::Requirement
135
149
  requirements:
136
- - - "~>"
150
+ - - ">="
137
151
  - !ruby/object:Gem::Version
138
- version: 0.20.0
152
+ version: '0'
139
153
  description: |2
140
154
  Some of the bits around the edge of Habitat, that I wish were available natively.
141
155
  email:
@@ -199,6 +213,8 @@ files:
199
213
  - lib/litterbox/habitat/promote.rb
200
214
  - lib/litterbox/habitat/upload.rb
201
215
  - lib/litterbox/last_build.rb
216
+ - lib/litterbox/profiles.rb
217
+ - lib/litterbox/profiles/profiles.rb
202
218
  - lib/litterbox/version.rb
203
219
  - litterbox.gemspec
204
220
  homepage: https://github.com/skylerto/litterbox
@@ -221,7 +237,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
221
237
  version: '0'
222
238
  requirements: []
223
239
  rubyforge_project:
224
- rubygems_version: 2.7.6
240
+ rubygems_version: 2.7.7
225
241
  signing_key:
226
242
  specification_version: 4
227
243
  summary: Some of the bits around the edge of Habitat