daemon-spawn 0.4.1 → 0.4.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.
@@ -1,3 +1,7 @@
1
+ === 0.4.2 / 2011-04-01
2
+
3
+ * Merged patches from Tilo Prütz
4
+
1
5
  === 0.4.1 / 2011-03-03
2
6
 
3
7
  * Merged patch from oruen to fix https://github.com/alexvollmer/daemon-spawn/issues/5
data/Rakefile CHANGED
@@ -15,7 +15,7 @@ begin
15
15
  gemspec.rubyforge_project = "daemon-spawn"
16
16
  gemspec.email = "alex.vollmer@gmail.com"
17
17
  gemspec.homepage = "http://github.com/alexvollmer/daemon-spawn"
18
- gemspec.authors = ["Alex Vollmer", "Seamus Abshere", "Emmanual Gomez", "Seth Falcon", "Woody Peterson"]
18
+ gemspec.authors = ["Alex Vollmer", "Seamus Abshere", "Emmanual Gomez", "Seth Falcon", "Woody Peterson", "Tilo Prütz"]
19
19
  end
20
20
  Jeweler::GemcutterTasks.new
21
21
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.4.2
@@ -11,7 +11,7 @@ module DaemonSpawn
11
11
  puts "Where <command> is one of start, stop, restart or status"
12
12
  puts "[options] are additional options passed to the underlying process"
13
13
  end
14
-
14
+
15
15
  def self.alive?(pid)
16
16
  Process.kill 0, pid
17
17
  rescue Errno::ESRCH
@@ -40,8 +40,9 @@ module DaemonSpawn
40
40
  exit if fork
41
41
  open(daemon.pid_file, 'w') { |f| f << Process.pid }
42
42
  Dir.chdir daemon.working_dir
43
- File.umask 0000
43
+ old_umask = File.umask 0000
44
44
  log = File.new(daemon.log_file, "a")
45
+ File.umask old_umask
45
46
  log.sync = daemon.sync_log
46
47
  STDIN.reopen "/dev/null"
47
48
  STDOUT.reopen log
@@ -179,7 +180,7 @@ module DaemonSpawn
179
180
  else
180
181
  build(opts).map { |d| DaemonSpawn.start(d, args) }
181
182
  end
182
- end
183
+ end
183
184
 
184
185
  def self.stop(opts, args)
185
186
  daemons = find(opts)
@@ -7,7 +7,7 @@ class DaemonSpawnTest < Test::Unit::TestCase
7
7
 
8
8
  # Try to make sure no pidfile (or process) is left over from another test.
9
9
  def setup
10
- %w{ echo_server deaf_server stubborn_server }.each do |server|
10
+ %w{ echo_server deaf_server stubborn_server simple_server }.each do |server|
11
11
  begin
12
12
  Process.kill 9, possible_pid(server)
13
13
  rescue Errno::ESRCH
@@ -38,20 +38,20 @@ class DaemonSpawnTest < Test::Unit::TestCase
38
38
  `./echo_server.rb #{args.join(' ')}`
39
39
  end
40
40
 
41
- def while_running
41
+ def while_running(&block)
42
42
  Dir.chdir(SERVERS) do
43
43
  `./echo_server.rb stop`
44
44
  assert_match(/EchoServer started./, `./echo_server.rb start 5150`)
45
45
  sleep 1
46
46
  begin
47
- with_socket
47
+ with_socket &block
48
48
  ensure
49
49
  assert_match(//, `./echo_server.rb stop`)
50
50
  assert_raises(Errno::ECONNREFUSED) { TCPSocket.new('127.0.0.1', 5150) }
51
51
  end
52
52
  end
53
53
  end
54
-
54
+
55
55
  def after_daemon_dies_leaving_pid_file
56
56
  Dir.chdir(SERVERS) do
57
57
  `./echo_server.rb stop`
@@ -129,7 +129,7 @@ class DaemonSpawnTest < Test::Unit::TestCase
129
129
  end
130
130
  end
131
131
  end
132
-
132
+
133
133
  def test_start_after_daemon_dies_leaving_pid_file
134
134
  after_daemon_dies_leaving_pid_file do |leftover_pid|
135
135
  assert_match /EchoServer started/, `./echo_server.rb start 5150`
@@ -149,7 +149,7 @@ class DaemonSpawnTest < Test::Unit::TestCase
149
149
  assert alive?(new_pid)
150
150
  end
151
151
  end
152
-
152
+
153
153
  def test_stop_using_custom_signal
154
154
  Dir.chdir(SERVERS) do
155
155
  `./deaf_server.rb start`
@@ -181,4 +181,30 @@ class DaemonSpawnTest < Test::Unit::TestCase
181
181
  assert dead?(pid)
182
182
  end
183
183
  end
184
+
185
+ def test_umask_unchanged
186
+ Dir.chdir(SERVERS) do
187
+ old_umask = File.umask 0124
188
+ log_file = File.join(Dir.tmpdir, 'should_not_be_world_writable')
189
+ begin
190
+ `./simple_server.rb stop`
191
+ FileUtils.rm_f log_file
192
+ `./simple_server.rb start #{log_file}`
193
+ sleep 1
194
+ assert_equal 0100642, File.stat(log_file).mode
195
+ ensure
196
+ `./simple_server.rb stop`
197
+ FileUtils.rm_f log_file
198
+ File.umask old_umask
199
+ end
200
+ end
201
+ end
202
+
203
+ def test_log_file_is_world_writable
204
+ log_file = File.join(Dir.tmpdir, 'echo_server.log')
205
+ FileUtils.rm_f log_file
206
+ while_running do
207
+ assert_equal 0100666, File.stat(log_file).mode
208
+ end
209
+ end
184
210
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: daemon-spawn
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease: false
4
+ hash: 11
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 1
10
- version: 0.4.1
9
+ - 2
10
+ version: 0.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Alex Vollmer
@@ -15,11 +15,12 @@ authors:
15
15
  - Emmanual Gomez
16
16
  - Seth Falcon
17
17
  - Woody Peterson
18
+ - "Tilo Pr\xC3\xBCtz"
18
19
  autorequire:
19
20
  bindir: bin
20
21
  cert_chain: []
21
22
 
22
- date: 2011-03-03 00:00:00 -08:00
23
+ date: 2011-04-01 00:00:00 -07:00
23
24
  default_executable:
24
25
  dependencies: []
25
26
 
@@ -41,7 +42,6 @@ files:
41
42
  - README.txt
42
43
  - Rakefile
43
44
  - VERSION
44
- - daemon-spawn.gemspec
45
45
  - lib/daemon_spawn.rb
46
46
  - test/daemon_spawn_test.rb
47
47
  - test/helper.rb
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  requirements: []
82
82
 
83
83
  rubyforge_project: daemon-spawn
84
- rubygems_version: 1.3.7
84
+ rubygems_version: 1.6.2
85
85
  signing_key:
86
86
  specification_version: 3
87
87
  summary: Daemon launching and management made dead simple
@@ -1,64 +0,0 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
-
6
- Gem::Specification.new do |s|
7
- s.name = %q{daemon-spawn}
8
- s.version = "0.4.1"
9
-
10
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
- s.authors = ["Alex Vollmer", "Seamus Abshere", "Emmanual Gomez", "Seth Falcon", "Woody Peterson"]
12
- s.date = %q{2011-03-03}
13
- s.description = %q{With daemon-spawn you can start, stop and restart processes that run
14
- in the background. Processed are tracked by a simple PID file written
15
- to disk.}
16
- s.email = %q{alex.vollmer@gmail.com}
17
- s.extra_rdoc_files = [
18
- "README.txt"
19
- ]
20
- s.files = [
21
- ".autotest",
22
- "History.txt",
23
- "Manifest.txt",
24
- "README.txt",
25
- "Rakefile",
26
- "VERSION",
27
- "daemon-spawn.gemspec",
28
- "lib/daemon_spawn.rb",
29
- "test/daemon_spawn_test.rb",
30
- "test/helper.rb",
31
- "test/multi_daemon_spawn_test.rb",
32
- "test/servers/deaf_server.rb",
33
- "test/servers/echo_server.rb",
34
- "test/servers/simple_server.rb",
35
- "test/servers/stubborn_server.rb",
36
- "test/servers/taps_server.rb"
37
- ]
38
- s.homepage = %q{http://github.com/alexvollmer/daemon-spawn}
39
- s.require_paths = ["lib"]
40
- s.rubyforge_project = %q{daemon-spawn}
41
- s.rubygems_version = %q{1.3.7}
42
- s.summary = %q{Daemon launching and management made dead simple}
43
- s.test_files = [
44
- "test/daemon_spawn_test.rb",
45
- "test/helper.rb",
46
- "test/multi_daemon_spawn_test.rb",
47
- "test/servers/deaf_server.rb",
48
- "test/servers/echo_server.rb",
49
- "test/servers/simple_server.rb",
50
- "test/servers/stubborn_server.rb",
51
- "test/servers/taps_server.rb"
52
- ]
53
-
54
- if s.respond_to? :specification_version then
55
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
56
- s.specification_version = 3
57
-
58
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
59
- else
60
- end
61
- else
62
- end
63
- end
64
-