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.
- data/.gitignore +1 -0
- data/.rbenv-version +1 -0
- data/bin/upstart-export +12 -3
- data/lib/upstart-exporter/version.rb +1 -1
- data/lib/upstart-exporter.rb +8 -11
- data/upstart-exporter.gemspec +2 -0
- metadata +68 -21
data/.gitignore
CHANGED
data/.rbenv-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.8.7-p352
|
data/bin/upstart-export
CHANGED
@@ -3,8 +3,10 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '../lib/'))
|
|
3
3
|
|
4
4
|
require 'upstart-exporter'
|
5
5
|
require 'optparse'
|
6
|
+
require 'fileutils'
|
7
|
+
require 'yaml'
|
6
8
|
|
7
|
-
USAGE = "Usage: upstart-export -p PROCFILE -n APPNAME"
|
9
|
+
USAGE = "Usage: upstart-export -p PROCFILE -n APPNAME\nor upstart-export -c -n APPNAME "
|
8
10
|
options = {}
|
9
11
|
|
10
12
|
OptionParser.new do |opts|
|
@@ -17,13 +19,20 @@ OptionParser.new do |opts|
|
|
17
19
|
options[:app_name] = n
|
18
20
|
end
|
19
21
|
|
22
|
+
opts.on("-c", "--clear", "Remove application scripts") do |n|
|
23
|
+
options[:clear] = true
|
24
|
+
end
|
20
25
|
end.parse!
|
21
26
|
|
22
|
-
abort(USAGE)
|
27
|
+
abort(USAGE) if !options[:app_name] || (!options[:procfile] && !options[:clear]) || (options[:procfile] && options[:clear])
|
23
28
|
|
24
29
|
|
25
30
|
begin
|
26
|
-
|
31
|
+
if options[:clear]
|
32
|
+
Upstart::Exporter.new(options).clear
|
33
|
+
else
|
34
|
+
Upstart::Exporter.new(options).export
|
35
|
+
end
|
27
36
|
rescue Upstart::ExportError => e
|
28
37
|
abort(e.to_s)
|
29
38
|
end
|
data/lib/upstart-exporter.rb
CHANGED
@@ -40,24 +40,29 @@ module Upstart
|
|
40
40
|
end
|
41
41
|
|
42
42
|
def process_opts(options)
|
43
|
-
|
43
|
+
@commands = if options[:clear]
|
44
|
+
{}
|
45
|
+
else
|
46
|
+
process_procfile(options[:procfile])
|
47
|
+
end
|
44
48
|
process_appname(options[:app_name])
|
45
49
|
end
|
46
50
|
|
47
51
|
def process_procfile(name)
|
48
52
|
error "#{name} is not a readable file" unless FileTest.file?(name)
|
49
|
-
|
53
|
+
commands = {}
|
50
54
|
content = File.read(name)
|
51
55
|
content.lines.each do |line|
|
52
56
|
line.chomp!
|
53
57
|
if line =~ /^(\w+?):(.*)$/
|
54
58
|
label = $1
|
55
59
|
command = $2
|
56
|
-
|
60
|
+
commands[label] = command
|
57
61
|
else
|
58
62
|
error "procfile lines should have the following format: 'some_label: command'"
|
59
63
|
end
|
60
64
|
end
|
65
|
+
commands
|
61
66
|
end
|
62
67
|
|
63
68
|
def process_appname(app_name)
|
@@ -68,14 +73,6 @@ module Upstart
|
|
68
73
|
def check_dir(dir)
|
69
74
|
FileUtils.mkdir_p(dir) unless FileTest.directory?(dir)
|
70
75
|
error "Path #{dir} does not exist" unless FileTest.directory?(dir)
|
71
|
-
elements = [''] + dir.split('/').select{|el| !el.empty?}
|
72
|
-
path = ''
|
73
|
-
elements.each do |el|
|
74
|
-
path += (el + '/')
|
75
|
-
if FileTest.world_writable?(path)
|
76
|
-
error "Path #{path} (in #{dir}) is writable by others"
|
77
|
-
end
|
78
|
-
end
|
79
76
|
end
|
80
77
|
|
81
78
|
def export
|
data/upstart-exporter.gemspec
CHANGED
metadata
CHANGED
@@ -1,53 +1,100 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: upstart-exporter
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Ilya Averyanov
|
9
14
|
autorequire:
|
10
15
|
bindir: bin
|
11
16
|
cert_chain: []
|
12
|
-
|
13
|
-
|
17
|
+
|
18
|
+
date: 2011-12-09 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
version_requirements: *id001
|
33
|
+
name: rake
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
version_requirements: *id002
|
47
|
+
name: rspec
|
14
48
|
description: Gem for converting Procfile-like files to upstart scripts
|
15
|
-
email:
|
49
|
+
email:
|
16
50
|
- ilya@averyanov.org
|
17
|
-
executables:
|
51
|
+
executables:
|
18
52
|
- upstart-export
|
19
53
|
extensions: []
|
54
|
+
|
20
55
|
extra_rdoc_files: []
|
21
|
-
|
56
|
+
|
57
|
+
files:
|
22
58
|
- .gitignore
|
59
|
+
- .rbenv-version
|
23
60
|
- Gemfile
|
24
61
|
- Rakefile
|
25
62
|
- bin/upstart-export
|
26
63
|
- lib/upstart-exporter.rb
|
27
64
|
- lib/upstart-exporter/version.rb
|
28
65
|
- upstart-exporter.gemspec
|
29
|
-
homepage:
|
66
|
+
homepage: ""
|
30
67
|
licenses: []
|
68
|
+
|
31
69
|
post_install_message:
|
32
70
|
rdoc_options: []
|
33
|
-
|
71
|
+
|
72
|
+
require_paths:
|
34
73
|
- lib
|
35
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
36
75
|
none: false
|
37
|
-
requirements:
|
38
|
-
- -
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
|
41
|
-
|
76
|
+
requirements:
|
77
|
+
- - ">="
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
hash: 3
|
80
|
+
segments:
|
81
|
+
- 0
|
82
|
+
version: "0"
|
83
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
42
84
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
hash: 3
|
89
|
+
segments:
|
90
|
+
- 0
|
91
|
+
version: "0"
|
47
92
|
requirements: []
|
93
|
+
|
48
94
|
rubyforge_project:
|
49
95
|
rubygems_version: 1.8.10
|
50
96
|
signing_key:
|
51
97
|
specification_version: 3
|
52
98
|
summary: Gem for converting Procfile-like files to upstart scripts
|
53
99
|
test_files: []
|
100
|
+
|