procfile-upstart-exporter 0.0.1 → 0.0.2

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