jack-eb 0.0.8 → 0.0.9

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: 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