jack-eb 0.0.8 → 0.0.9

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: 89ef11d5cc261c03016ea406f3a90985588d491c
4
- data.tar.gz: a8a7d7003b408913a83dbff7fb8fafd9d7933eb5
3
+ metadata.gz: 0b42806f99aa21018cdc2ba15165568982ea5e33
4
+ data.tar.gz: 45ce60cf95cfc8beea67a41dd604ec90e8121e96
5
5
  SHA512:
6
- metadata.gz: 65b1a0320df3a79fd4d11ea60ba1a9a5f9b5ee3a15af96891e1522c46bb1410653d9a1b2e9334dd8cc9b63b093927dbc242c8b0aa3eb2f9941a33fa8cc9ecdea
7
- data.tar.gz: 49c4370e2097e95f78faff19d9560a2c2fe49777f016a3b7ce6787379713f8d4d87ed99d999c82c84dbd07e41b8ef5b9df4426a7e068ad7c5c797df3685604fe
6
+ metadata.gz: f81a1908e5f2fd064c6908f90f23c4d80220ce37f8f85ce696202b878b9bbf6b4f59d6abc70d48b09a92cad715998fe96056950712795280cc1e32854d6747f0
7
+ data.tar.gz: e5245a9d74159e6c4d28c879b2c8bd5a7d95f0630d767b269bf2dea68a4a0dc10e72531ee2d967200517b568490e9190a22a2f69305cff40108a90dc7b15c1fd
data/README.md CHANGED
@@ -49,7 +49,7 @@ In your project folder create a folder call jack/cfg. It might be useful for yo
49
49
  $ jack config download [ENVIRONMENT_NAME]
50
50
  </pre>
51
51
 
52
- The path of config that is saved is based on a convention. An example best illustrates the convention.
52
+ The path of config that is saved is based on the environment name.
53
53
 
54
54
  <pre>
55
55
  $ jack config download stag-rails-app-s1
@@ -57,13 +57,13 @@ Downloading config file...
57
57
  Running: eb config save --cfg current-2015-03-03_18-40-34 stag-rails-app-s1
58
58
 
59
59
  Configuration saved at: /Users/tung/src/rails/.elasticbeanstalk/saved_configs/current-2015-03-03_18-40-34.cfg.yml
60
- Writing to local config file: jack/cfg/stag-rails-app.cfg.yml
60
+ Writing to local config file: jack/cfg/stag-rails-app-s1.cfg.yml
61
61
  Cleaning up eb remote config and local files
62
62
  Config downloaded to jack/cfg/stag-rails-app.cfg.yml
63
63
  $
64
64
  </pre>
65
65
 
66
- Results in a saved jack/cfg/stag-rails-app.cfg.yml template configuration file. Notice how the last dash separated word has been removed. The convention is overridable.
66
+ Results in a saved jack/cfg/stag-rails-app-s1.cfg.yml template configuration file. This is overridable.
67
67
 
68
68
  <pre>
69
69
  $ jack config download -c myconfig stag-rails-app-s1
@@ -83,9 +83,9 @@ Configuration templates hold all the options and settings that we can set for an
83
83
  The purpose of the jack/cfg configs is allow us to be able to create environments with a codified configuration file that can be versioned controlled.
84
84
 
85
85
  <pre>
86
- $ jack create stag-rails-app-s1 # uses the jack/cfg/stag-rails-app.cfg.yml template
87
- $ jack create stag-rails-app-s2 # another instance of the environment, but still uses the jack/cfg/stag-rails-app.cfg.yml template
88
- $ jack create -c myconfig stag-rails-app-s3 # creates environment using a config not based on naming convention
86
+ $ jack create stag-rails-app-s1 # uses the jack/cfg/stag-rails-app-s1.cfg.yml template
87
+ $ jack create stag-rails-app-s2 # uses the jack/cfg/stag-rails-app-s1.cfg.yml template
88
+ $ jack create -c myconfig stag-rails-app-s3 # creates environment using a config not based on environment naming convention
89
89
  </pre>
90
90
 
91
91
  If the project is brand new and has never had `eb init` ran on it before. For example, a project that has just been git cloned. Then calling any of the jack commands will automatically call `eb init` in the project. `eb init` requires the platform flag in order to avoid prompting. By default, the latest Docker solution stack is used for the platform option. But you can override that by creating an ~/.jack/create.yml or jack/create.yml within the project folder. Here's an [example](https://gist.github.com/tongueroo/086e3c11c4d00d5c39b6). The options from each file is merged using the following precedence: project folder, user home, default that is packaged with this gem. Most of the settings that `jack create` should used should be in the template configuration file though.
@@ -100,7 +100,7 @@ To download a template configuration.
100
100
  $ jack config download stag-rails-app-s1
101
101
  ```
102
102
 
103
- This will save the config to jack/cfg/stag-rails-app.cfg.yml.
103
+ This will save the config to jack/cfg/stag-rails-app-s1.cfg.yml.
104
104
 
105
105
  #### Upload
106
106
 
@@ -110,7 +110,7 @@ To upload a template configuration.
110
110
  $ jack config upload stag-rails-app-s1
111
111
  ```
112
112
 
113
- This will save the config to jack/cfg/stag-rails-app.cfg.yml. Here's an example of the [output](http://d.pr/i/14Sfh).
113
+ This will save the config to jack/cfg/stag-rails-app-s1.cfg.yml. Here's an example of the [output](http://d.pr/i/14Sfh).
114
114
 
115
115
  Notice that the `eb config upload` command also prompts you with the diff before uploading and ask for confirmation. You can bypass the prompt with the force option.
116
116
 
@@ -21,12 +21,22 @@ module Jack
21
21
  end
22
22
 
23
23
  def download
24
+ add_gitignore
24
25
  get_current_cfg
25
26
  copy_to_local_cfg
26
27
  clean
27
28
  UI.say "Config downloaded to #{@local_config_path}".colorize(:green)
28
29
  end
29
30
 
31
+ def add_gitignore
32
+ path = "#{@root}/.gitignore"
33
+ if File.exist?(path)
34
+ ignores = IO.read(path)
35
+ has_ignore = ignores.include?("jack/cfg")
36
+ end
37
+ do_cmd("echo 'jack/cfg/*.yml' >> #{path}") unless has_ignore
38
+ end
39
+
30
40
  def get_current_cfg
31
41
  UI.say "Downloading config file..."
32
42
  eb_config_save
@@ -15,14 +15,10 @@ module Jack
15
15
 
16
16
  @saved_configs = "#{@root}/.elasticbeanstalk/saved_configs"
17
17
 
18
- local_config_name = options[:cfg] || config_name_convention(@env_name)
18
+ local_config_name = options[:cfg] || @env_name
19
19
  @local_config_path = "jack/cfg/#{local_config_name}.cfg.yml"
20
20
  end
21
21
 
22
- def config_name_convention(env_name)
23
- env_name.split('-')[0..-2].join('-')
24
- end
25
-
26
22
  def timestamp
27
23
  Time.now.strftime "%Y-%m-%d_%H-%M-%S"
28
24
  end
@@ -1,3 +1,3 @@
1
1
  module Jack
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -15,5 +15,11 @@ describe Jack::Config do
15
15
  download.download
16
16
  end
17
17
 
18
+ it "should add jack/cfg/*.yml to gitignore" do
19
+ download.download
20
+ ignore = IO.read("#{@root}/.gitignore")
21
+ expect(ignore).to include("jack/cfg")
22
+ end
23
+
18
24
  end
19
25
  end
@@ -8,18 +8,13 @@ describe Jack::Config do
8
8
  let(:transmit) { Jack::Config::Transmit.new(test_options) }
9
9
 
10
10
  describe "transmit" do
11
- it "config_name_convention" do
12
- name = transmit.config_name_convention("stag-rails-app-s9")
13
- expect(name).to eq "stag-rails-app"
14
- end
15
-
16
11
  it "timestamp" do
17
12
  timestamp = transmit.timestamp
18
13
  expect(timestamp).to be_a(String)
19
14
  end
20
15
 
21
16
  it "extract_name" do
22
- name = transmit.extract_name("/app/.elasticbeanstalk/saved_cofnigs/stag-rails-app.cfg.yml")
17
+ name = transmit.extract_name("/app/.elasticbeanstalk/saved_configs/stag-rails-app.cfg.yml")
23
18
  expect(name).to eq "stag-rails-app"
24
19
  end
25
20
  end
@@ -35,6 +35,8 @@ global:
35
35
  default_platform: 64bit Amazon Linux 2014.09 v1.2.0 running Docker 1.3.3
36
36
  EOL
37
37
  path = "#{@root}/.elasticbeanstalk/config.yml"
38
+ dir = File.dirname(path)
39
+ FileUtils.mkdir_p(dir) unless File.exist?(path)
38
40
  File.write(path, data) unless File.exist?(path)
39
41
  end
40
42
 
@@ -44,5 +46,9 @@ RSpec.configure do |c|
44
46
  c.include Helpers
45
47
  c.before :all do
46
48
  @root = "spec/fixtures/project"
49
+ fake_eb_config
50
+ end
51
+ c.after :all do
52
+ FileUtils.rm_f("#{@root}/.gitignore")
47
53
  end
48
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jack-eb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-08 00:00:00.000000000 Z
11
+ date: 2015-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -162,7 +162,7 @@ files:
162
162
  - lib/jack/util.rb
163
163
  - lib/jack/version.rb
164
164
  - lib/jack/version_checker.rb
165
- - spec/fixtures/project/jack/cfg/stag-rails-app.cfg.yml
165
+ - spec/fixtures/project/jack/cfg/stag-rails-app-s9.cfg.yml
166
166
  - spec/lib/cli_spec.rb
167
167
  - spec/lib/config/diff_spec.rb
168
168
  - spec/lib/config/download_spec.rb
@@ -202,7 +202,7 @@ signing_key:
202
202
  specification_version: 4
203
203
  summary: Wrapper tool to manage AWS Elastic Beanstalk environments
204
204
  test_files:
205
- - spec/fixtures/project/jack/cfg/stag-rails-app.cfg.yml
205
+ - spec/fixtures/project/jack/cfg/stag-rails-app-s9.cfg.yml
206
206
  - spec/lib/cli_spec.rb
207
207
  - spec/lib/config/diff_spec.rb
208
208
  - spec/lib/config/download_spec.rb