cron_wrapper 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.
- data/Manifest +0 -1
- data/Rakefile +1 -1
- data/cron_wrapper.gemspec +2 -4
- data/lib/cron_wrapper.rb +33 -13
- metadata +5 -26
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -1
data/Manifest
CHANGED
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('cron_wrapper', '0.0.
|
5
|
+
Echoe.new('cron_wrapper', '0.0.2') do |p|
|
6
6
|
p.description = "A gem that provides useful features for running ruby or Rails scripts with cron"
|
7
7
|
p.url = "http://bugzilla.visaops.net/project_automate_groups/trunk/projects/cron_wrapper"
|
8
8
|
p.author = "Bryan Taylor"
|
data/cron_wrapper.gemspec
CHANGED
@@ -2,24 +2,22 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{cron_wrapper}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Bryan Taylor"]
|
9
|
-
s.cert_chain = ["/home/bryan/gem_private_key/gem-public_cert.pem"]
|
10
9
|
s.date = %q{2011-02-18}
|
11
10
|
s.default_executable = %q{cron_wrapper}
|
12
11
|
s.description = %q{A gem that provides useful features for running ruby or Rails scripts with cron}
|
13
12
|
s.email = %q{btaylor39 @nospam@ csc.com}
|
14
13
|
s.executables = ["cron_wrapper"]
|
15
14
|
s.extra_rdoc_files = ["bin/cron_wrapper", "lib/cron_wrapper.rb"]
|
16
|
-
s.files = ["Manifest", "Rakefile", "bin/cron_wrapper", "cron_wrapper.
|
15
|
+
s.files = ["Manifest", "Rakefile", "bin/cron_wrapper", "lib/cron_wrapper.rb", "cron_wrapper.gemspec"]
|
17
16
|
s.homepage = %q{http://bugzilla.visaops.net/project_automate_groups/trunk/projects/cron_wrapper}
|
18
17
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Cron_wrapper"]
|
19
18
|
s.require_paths = ["lib"]
|
20
19
|
s.rubyforge_project = %q{cron_wrapper}
|
21
20
|
s.rubygems_version = %q{1.3.7}
|
22
|
-
s.signing_key = %q{/home/bryan/gem_private_key/gem-private_key.pem}
|
23
21
|
s.summary = %q{features: locking to prevent resource contention, standard logging, optional rails integration}
|
24
22
|
|
25
23
|
if s.respond_to? :specification_version then
|
data/lib/cron_wrapper.rb
CHANGED
@@ -4,7 +4,7 @@ require 'logger'
|
|
4
4
|
class CronWrapper
|
5
5
|
|
6
6
|
attr_reader :logger
|
7
|
-
|
7
|
+
attr_reader :others
|
8
8
|
|
9
9
|
def initialize(*args)
|
10
10
|
@options = {}
|
@@ -15,7 +15,9 @@ class CronWrapper
|
|
15
15
|
@options[:silent] = false
|
16
16
|
@options[:verbose] = false
|
17
17
|
@options[:log] = nil
|
18
|
-
|
18
|
+
|
19
|
+
@others = []
|
20
|
+
|
19
21
|
# do options
|
20
22
|
foo = OptionParser.new do |opts|
|
21
23
|
opts.banner = "Usage: cron_wrapper [options] <script>\
|
@@ -28,18 +30,25 @@ class CronWrapper
|
|
28
30
|
>cron_wrapper awesome_script
|
29
31
|
"
|
30
32
|
|
31
|
-
opts.on("--dry-run", "dry run (default: off)") { |o| @options[:dry_run] = o }
|
32
|
-
opts.on("--skip-rails", "Do not try to load Rails (default: off)") { |o| @options[:skip_rails] = o }
|
33
|
-
opts.on("--root", "Root or working directory (default: .)") { |o| @options[:root] = o }
|
34
|
-
opts.on("--lock_dir", "Lock dir (default: <root>/tmp/locks)") { |o| @options[:lock_dir] = o }
|
35
|
-
opts.on("-
|
36
|
-
opts.on("
|
33
|
+
opts.on("--wrap-dry-run", "dry run (default: off)") { |o| @options[:dry_run] = o }
|
34
|
+
opts.on("--wrap-skip-rails", "Do not try to load Rails (default: off)") { |o| @options[:skip_rails] = o }
|
35
|
+
opts.on("--wrap-root DIR", "Root or working directory (default: .)") { |o| @options[:root] = o }
|
36
|
+
opts.on("--wrap-lock_dir DIR", "Lock dir (default: <root>/tmp/locks)") { |o| @options[:lock_dir] = o }
|
37
|
+
opts.on("--wrap-log FILE", "log file relative to root (default: STDOUT)") { |o| @options[:log] = o }
|
38
|
+
opts.on("--wrap-silent", "Do not output anything (default: off)") { |o| @options[:silent] = o }
|
39
|
+
opts.on("--[no-]wrap-verbose", "Run verbosely (default: off)") { |o| @options[:verbose] = o }
|
37
40
|
|
38
41
|
opts.on_tail("-h", "--help", "Show this message") do
|
39
42
|
puts opts
|
40
43
|
exit
|
41
44
|
end
|
42
|
-
end
|
45
|
+
end
|
46
|
+
|
47
|
+
begin
|
48
|
+
foo.parse!
|
49
|
+
rescue OptionParser::InvalidOption => e
|
50
|
+
@others << e.args
|
51
|
+
end
|
43
52
|
|
44
53
|
|
45
54
|
# Setup rails
|
@@ -60,8 +69,16 @@ class CronWrapper
|
|
60
69
|
|
61
70
|
|
62
71
|
# Setup logging
|
63
|
-
@options[:
|
64
|
-
|
72
|
+
@options[:log] ||= STDOUT
|
73
|
+
if @options[:log] != STDOUT
|
74
|
+
log_root = File.dirname(File.join(@options[:root], @options[:log]))
|
75
|
+
if !File.exists?(log_root)
|
76
|
+
abort "dir for log file #{@options[:log]} does not exist"
|
77
|
+
end
|
78
|
+
@logger = Logger.new(File.join(@options[:root], @options[:log]))
|
79
|
+
else
|
80
|
+
@logger = Logger.new(@options[:log])
|
81
|
+
end
|
65
82
|
@logger.level = case
|
66
83
|
when (!@options[:verbose] && !@options[:silent])
|
67
84
|
Logger::INFO
|
@@ -106,10 +123,13 @@ class CronWrapper
|
|
106
123
|
|
107
124
|
# Load target script
|
108
125
|
begin
|
126
|
+
@others.each_with_index do |arg, index|
|
127
|
+
ARGV[index] = arg
|
128
|
+
end
|
109
129
|
load target
|
110
|
-
|
130
|
+
logger.fatal "#{target} successfully loaded via cron_wrapper"
|
111
131
|
rescue LoadError => e
|
112
|
-
|
132
|
+
logger.fatal "#{target} failed to load via cron_wrapper"
|
113
133
|
logger.info e.message
|
114
134
|
logger.debug e.backtrace
|
115
135
|
end
|
metadata
CHANGED
@@ -1,40 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cron_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Bryan Taylor
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
|
-
cert_chain:
|
17
|
-
- |
|
18
|
-
-----BEGIN CERTIFICATE-----
|
19
|
-
MIIDMDCCAhigAwIBAgIBADANBgkqhkiG9w0BAQUFADA+MRIwEAYDVQQDDAlidGF5
|
20
|
-
bG9yMzkxEzARBgoJkiaJk/IsZAEZFgNjc2MxEzARBgoJkiaJk/IsZAEZFgNjb20w
|
21
|
-
HhcNMTEwMjE2MTI1MzQzWhcNMTIwMjE2MTI1MzQzWjA+MRIwEAYDVQQDDAlidGF5
|
22
|
-
bG9yMzkxEzARBgoJkiaJk/IsZAEZFgNjc2MxEzARBgoJkiaJk/IsZAEZFgNjb20w
|
23
|
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDid0W3CiAzCKP+H70D/FFq
|
24
|
-
RnwfMdTqsIGK6pKZVHIqqcZxntJw1r3zHwvDwwjh67/iysB0mum6Palizm0xtBqZ
|
25
|
-
wTHO+GXNsTz/+zfihkJMSVhSY8Y58SNuV5m1CmzdVSyVrTyOlkc6+IpHTlpaCpf4
|
26
|
-
r3mGtZbsuEpLvU/A3iC778k8Bm9hoKhI/3CoMWQjSTHYfrMDWetuGhu8NbdGK3BN
|
27
|
-
E1dgEBdQLAjf8yeY3pmmUE88cr9EvrFVdx7mnI5lzOwZMuFSgEBw5AsB6+vvlTW3
|
28
|
-
i75Q4pJwjeM41i2B1u7T4kskmOogfZl3YAulPXrEaTCKHDEQb/Jp4WtTy2v8m+79
|
29
|
-
AgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBS36r/0
|
30
|
-
ouuKO1EVrbluXYEBlANxODANBgkqhkiG9w0BAQUFAAOCAQEAgNN7J2bWCZDSQQm8
|
31
|
-
7PfoCViUKWIcWEZB+C05R0JDpFue0lL5s6aAt61rPXL6k5UiLtj8QkGSe0vasC9G
|
32
|
-
f8eBWU5l3g/HDvsFZ5cIBWk0saF7xlIZC3E98LF8Vcfl9WFibHCuwApxzzcAQvdU
|
33
|
-
ocHFXaTM2tz8iRO5pW+Do3GC7Mjbo2mvAGN0H5f4tZkZ+Ttm25bAPpnHfXaWPxKq
|
34
|
-
RL48Oo1H6iw8nmjm8YrQC6UdtW8ogetCkJwwFmK/U5YQQsE0NnUSG5Ii5R32ZdaY
|
35
|
-
eMvMROg/ZYJZzMayO+XXWYgXhy2UDEP/hNhNzM3E+XJUilcA4dZ/fdX57vL0Qpvn
|
36
|
-
NK5lPw==
|
37
|
-
-----END CERTIFICATE-----
|
16
|
+
cert_chain: []
|
38
17
|
|
39
18
|
date: 2011-02-18 00:00:00 +00:00
|
40
19
|
default_executable:
|
@@ -53,8 +32,8 @@ files:
|
|
53
32
|
- Manifest
|
54
33
|
- Rakefile
|
55
34
|
- bin/cron_wrapper
|
56
|
-
- cron_wrapper.gemspec
|
57
35
|
- lib/cron_wrapper.rb
|
36
|
+
- cron_wrapper.gemspec
|
58
37
|
has_rdoc: true
|
59
38
|
homepage: http://bugzilla.visaops.net/project_automate_groups/trunk/projects/cron_wrapper
|
60
39
|
licenses: []
|
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
� !b5s?�NJ,�:t����L��Œ�rHIg�ެ�u'�=>�
|