procfile-upstart-exporter 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 2d2d1e53d73c1d9c485b125698e2e0ab41528de6
4
+ data.tar.gz: 4f13e9cb6eee0144dfb49ea5a000606b2403533d
5
+ SHA512:
6
+ metadata.gz: 9ea702b920af27f119b7266aabc033b72ea4f809621fc2fc57c1f7aae53b6a806ab4b5fdd191bf1925ab19787e3878bab6d8056f823c969ce2c5082feb3afcc9
7
+ data.tar.gz: 343a676082a37552fee0982068e24233ac63dd64c8560b19e5ceddda96bc269e4e70c198e978e1c2c7f79f8221695d1c1807a73e299ae81275f5dcacc1fbbbff
data/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ ---
2
+ language: ruby
3
+ rvm:
4
+ - '2.0.0'
5
+ script: bundle exec rspec spec
data/README.md CHANGED
@@ -50,7 +50,7 @@ Usage
50
50
  ### Create [Upstart][upstart] jobs configuration
51
51
 
52
52
  ```console
53
- # procfile-upstart-exporter export \
53
+ # procfile-upstart-exporter create \
54
54
  --application <application> \
55
55
  --procfile <path-to-procfile> \
56
56
  --log <path-to-log> \
@@ -69,6 +69,27 @@ Usage
69
69
  --verbose
70
70
  ```
71
71
 
72
+ Changelog
73
+ ---------
74
+
75
+ ### `v0.0.2`
76
+
77
+ - Warn if `Procfile` or `.env` don't exist.
78
+ - Treat properly spaces and comment lines in `.env`.
79
+
80
+ ### `v0.0.1`
81
+
82
+ - First implementation of `craete` and `destroy` commands with basic
83
+ functionality.
84
+
85
+ New release procedure
86
+ ---------------------
87
+
88
+ 1. Update changelog.
89
+ 2. Bump version.
90
+ 3. Push tag with version. For example, `v1.2.3`.
91
+ 4. Publish in [RubyGems][ruby-gem].
92
+
72
93
  License
73
94
  -------
74
95
 
@@ -3,10 +3,12 @@ class ProcfileUpstartExporter::EnvironmentParser
3
3
  ProcfileUpstartExporter.logger.debug "Start parsing environment file " \
4
4
  "`#{ environment }'"
5
5
  if File.exists? environment
6
- File.read(environment).split("\n")
6
+ File.read(environment).split("\n").reject { |line|
7
+ line =~ /\A\s*(?:#.*)?\z/
8
+ }
7
9
  else
8
- ProcfileUpstartExporter.logger.debug "Environment file " \
9
- "`#{ environment }' does not exist"
10
+ ProcfileUpstartExporter.logger.warn "Environment file " \
11
+ "`#{ environment }' does not exist"
10
12
  []
11
13
  end
12
14
  end
@@ -2,10 +2,16 @@ class ProcfileUpstartExporter::ProcfileParser
2
2
  def parse procfile
3
3
  ProcfileUpstartExporter.logger.debug 'Start parsing Procfile ' \
4
4
  "`#{ procfile }'"
5
- File.read(procfile).split("\n").map do |process_line|
6
- ProcfileUpstartExporter::Process.new(
7
- *process_line.scan(/\A([^:]+):(.*)\z/).first.map(&:strip)
8
- )
5
+ if File.exists? procfile
6
+ File.read(procfile).split("\n").map do |process_line|
7
+ ProcfileUpstartExporter::Process.new(
8
+ *process_line.scan(/\A([^:]+):(.*)\z/).first.map(&:strip)
9
+ )
10
+ end
11
+ else
12
+ ProcfileUpstartExporter.logger.warn "Procfile file " \
13
+ "`#{ procfile }' does not exist"
14
+ []
9
15
  end
10
16
  end
11
17
  end
@@ -1,3 +1,3 @@
1
1
  module ProcfileUpstartExporter
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -25,4 +25,5 @@ Gem::Specification.new do |spec|
25
25
  spec.add_development_dependency 'rake'
26
26
  spec.add_development_dependency 'rspec', '~> 2.14'
27
27
  spec.add_development_dependency 'pry-nav'
28
+ spec.add_development_dependency 'coveralls'
28
29
  end
@@ -0,0 +1,8 @@
1
+ # This is a comment, it should not be treated as environment variable.
2
+ # The following line is empty, it should also be ignored:
3
+
4
+ # The following line contains only spaces, thus should be ignored as well:
5
+
6
+ # This is a comment that starts after a few spaces
7
+
8
+ AN_ENVIRONMENT_VARIABLE=at_least
@@ -15,7 +15,7 @@ describe ProcfileUpstartExporter::Creator do
15
15
  let(:procfile) { 'Procfile' }
16
16
  let(:log) { "#{ temp_dir }/log" }
17
17
  let(:application_log) { "#{ log }/#{ application}" }
18
- let(:environment) { '.env' }
18
+ let(:environment) { 'environment' }
19
19
  let(:user) { 'bin' }
20
20
  let(:upstart_jobs_path) { temp_dir }
21
21
  let(:application_root) {
@@ -95,7 +95,7 @@ JOB_CONFIGURATION
95
95
  expect(File.directory? application_log).to be_true
96
96
  end
97
97
 
98
- it "places environment variables from `.env' in process' Upstart job" do
98
+ it "places environment variables from environment file in Upstart job" do
99
99
  act
100
100
  expect(
101
101
  File.read("#{ upstart_jobs_path }/#{ application }/background.conf")
@@ -8,7 +8,7 @@ describe ProcfileUpstartExporter::EnvironmentParser do
8
8
  describe '#parse' do
9
9
  subject(:environment_variables) { environment_parser.parse environment }
10
10
 
11
- let(:environment) { 'spec/fixtures/sample-application/.env' }
11
+ let(:environment) { 'spec/fixtures/sample-application/environment' }
12
12
 
13
13
  it 'reads the environment file' do
14
14
  expect(File).to receive(:read).with(environment).and_call_original
@@ -28,5 +28,16 @@ describe ProcfileUpstartExporter::EnvironmentParser do
28
28
  expect(environment_variables).to eq([])
29
29
  end
30
30
  end
31
+
32
+ context 'environment file has empty lines and comments' do
33
+ let(:environment) {
34
+ 'spec/fixtures/environment-with-spaces-and-comments'
35
+ }
36
+ it 'removes the empty lines and comments' do
37
+ expect(environment_variables).to eq(
38
+ ['AN_ENVIRONMENT_VARIABLE=at_least']
39
+ )
40
+ end
41
+ end
31
42
  end
32
43
  end
@@ -25,5 +25,13 @@ describe ProcfileUpstartExporter::ProcfileParser do
25
25
  )
26
26
  ])
27
27
  end
28
+
29
+ context 'inexistent Procfile' do
30
+ let(:procfile) { 'inexistent' }
31
+
32
+ it 'returns an empty Array' do
33
+ expect(processes).to eq([])
34
+ end
35
+ end
28
36
  end
29
37
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
1
4
  require_relative '../lib/procfile-upstart-exporter'
2
5
 
3
6
  require 'fileutils'
metadata CHANGED
@@ -1,121 +1,124 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: procfile-upstart-exporter
3
- version: !ruby/object:Gem::Version
4
- hash: 29
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Das Dad
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2013-10-17 00:00:00 +00:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2013-10-18 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: thor
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
33
20
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: values
37
21
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
39
- none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: values
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
47
34
  type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: bundler
51
35
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
53
- none: false
54
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
55
45
  - - ~>
56
- - !ruby/object:Gem::Version
57
- hash: 9
58
- segments:
59
- - 1
60
- - 3
61
- version: "1.3"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
62
48
  type: :development
63
- version_requirements: *id003
64
- - !ruby/object:Gem::Dependency
65
- name: rake
66
49
  prerelease: false
67
- requirement: &id004 !ruby/object:Gem::Requirement
68
- none: false
69
- requirements:
70
- - - ">="
71
- - !ruby/object:Gem::Version
72
- hash: 3
73
- segments:
74
- - 0
75
- version: "0"
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
76
62
  type: :development
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: rspec
80
63
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
82
- none: false
83
- requirements:
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
84
73
  - - ~>
85
- - !ruby/object:Gem::Version
86
- hash: 31
87
- segments:
88
- - 2
89
- - 14
90
- version: "2.14"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.14'
91
76
  type: :development
92
- version_requirements: *id005
93
- - !ruby/object:Gem::Dependency
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '2.14'
83
+ - !ruby/object:Gem::Dependency
94
84
  name: pry-nav
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
95
91
  prerelease: false
96
- requirement: &id006 !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- hash: 3
102
- segments:
103
- - 0
104
- version: "0"
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: coveralls
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
105
104
  type: :development
106
- version_requirements: *id006
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
107
111
  description: Export Procfile entries to Upstart jobs.
108
- email:
112
+ email:
109
113
  - dev@dasdad.com.br
110
- executables:
114
+ executables:
111
115
  - procfile-upstart-exporter
112
116
  extensions: []
113
-
114
117
  extra_rdoc_files: []
115
-
116
- files:
118
+ files:
117
119
  - .gitignore
118
120
  - .rspec
121
+ - .travis.yml
119
122
  - Gemfile
120
123
  - README.md
121
124
  - Rakefile
@@ -131,8 +134,9 @@ files:
131
134
  - lib/procfile_upstart_exporter/procfile_parser.rb
132
135
  - lib/procfile_upstart_exporter/version.rb
133
136
  - procfile-upstart-exporter.gemspec
134
- - spec/fixtures/sample-application/.env
137
+ - spec/fixtures/environment-with-spaces-and-comments
135
138
  - spec/fixtures/sample-application/Procfile
139
+ - spec/fixtures/sample-application/environment
136
140
  - spec/procfile_upstart_exporter/creator_spec.rb
137
141
  - spec/procfile_upstart_exporter/destroyer_spec.rb
138
142
  - spec/procfile_upstart_exporter/environment_parser_spec.rb
@@ -142,43 +146,34 @@ files:
142
146
  - spec/support/temp_dir.rb
143
147
  - templates/application.conf
144
148
  - templates/process.conf.erb
145
- has_rdoc: true
146
149
  homepage: https://github.com/dasdad/procfile-upstart-exporter
147
- licenses:
150
+ licenses:
148
151
  - MIT
152
+ metadata: {}
149
153
  post_install_message:
150
154
  rdoc_options: []
151
-
152
- require_paths:
155
+ require_paths:
153
156
  - lib
154
- required_ruby_version: !ruby/object:Gem::Requirement
155
- none: false
156
- requirements:
157
- - - ">="
158
- - !ruby/object:Gem::Version
159
- hash: 3
160
- segments:
161
- - 0
162
- version: "0"
163
- required_rubygems_version: !ruby/object:Gem::Requirement
164
- none: false
165
- requirements:
166
- - - ">="
167
- - !ruby/object:Gem::Version
168
- hash: 3
169
- segments:
170
- - 0
171
- version: "0"
157
+ required_ruby_version: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - '>='
160
+ - !ruby/object:Gem::Version
161
+ version: '0'
162
+ required_rubygems_version: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
172
167
  requirements: []
173
-
174
168
  rubyforge_project:
175
- rubygems_version: 1.6.2
169
+ rubygems_version: 2.0.3
176
170
  signing_key:
177
- specification_version: 3
171
+ specification_version: 4
178
172
  summary: Solve common problems with `foreman export`
179
- test_files:
180
- - spec/fixtures/sample-application/.env
173
+ test_files:
174
+ - spec/fixtures/environment-with-spaces-and-comments
181
175
  - spec/fixtures/sample-application/Procfile
176
+ - spec/fixtures/sample-application/environment
182
177
  - spec/procfile_upstart_exporter/creator_spec.rb
183
178
  - spec/procfile_upstart_exporter/destroyer_spec.rb
184
179
  - spec/procfile_upstart_exporter/environment_parser_spec.rb