cron_wrapper 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest CHANGED
@@ -1,5 +1,4 @@
1
1
  Manifest
2
2
  Rakefile
3
3
  bin/cron_wrapper
4
- cron_wrapper.gemspec
5
4
  lib/cron_wrapper.rb
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.1') do |p|
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.1"
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.gemspec", "lib/cron_wrapper.rb"]
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("-s", "--silent", "Do not output anything (default: off)") { |o| @options[:silent] = o }
36
- opts.on("-v", "--[no-]verbose", "Run verbosely (default: off)") { |o| @options[:verbose] = o }
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.parse!
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[:logger] ||= STDOUT
64
- @logger = Logger.new(@options[:logger])
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
- puts "#{target} successfully loaded via cron_wrapper"
130
+ logger.fatal "#{target} successfully loaded via cron_wrapper"
111
131
  rescue LoadError => e
112
- puts "#{target} failed to load via cron_wrapper"
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: 29
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 1
10
- version: 0.0.1
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?�N󄸱J,�:t����L��Œ�rHIg�ެ�u'�=>�