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 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'�=>�