platform1 0.0.3 → 0.0.4

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.
Files changed (3) hide show
  1. data/bin/platform1 +81 -11
  2. data/platform1.gemspec +4 -4
  3. metadata +43 -52
data/bin/platform1 CHANGED
@@ -27,26 +27,81 @@ class Platform1Command < Clamp::Command
27
27
 
28
28
  end
29
29
 
30
- subcommand "start", "Start Passenger Standalone." do
30
+ module Warnings
31
+
32
+ extend Clamp::Option::Declaration
33
+
34
+ option "--no-warn", :flag, "don't print warnings"
35
+
36
+ def warn(message)
37
+ $stderr.puts(message) unless no_warn?
38
+ end
39
+
40
+ end
41
+
42
+ subcommand "start", "Start the server." do
43
+
44
+ self.description = %{
45
+ Start Passenger Standalone, as a daemon process.
46
+
47
+ Succeeds, with a warning, if the server is already running.
48
+ }
49
+
50
+ include Warnings
31
51
 
32
52
  def execute
33
- sh("passenger start -p #{passenger_port} -d")
53
+ if pid = passenger_pid
54
+ warn "already UP (pid #{pid})"
55
+ else
56
+ sh("passenger start -p #{passenger_port} -d")
57
+ end
34
58
  end
35
59
 
36
60
  end
37
61
 
38
- subcommand "stop", "Stop Passenger Standalone." do
62
+ subcommand "stop", "Stop the server." do
63
+
64
+ self.description = %{
65
+ Stop Passenger Standalone.
66
+
67
+ Succeeds, with a warning, if the server is not running.
68
+ }
69
+
70
+ include Warnings
39
71
 
40
72
  def execute
41
- sh("passenger stop -p #{passenger_port}")
73
+ if passenger_pid
74
+ sh("passenger stop -p #{passenger_port}")
75
+ else
76
+ warn "already DOWN"
77
+ end
42
78
  end
43
79
 
44
80
  end
45
81
 
46
82
  subcommand "status", "Show Passenger status." do
47
83
 
84
+ self.description = %{
85
+ Show status of the Passenger Standalone server.
86
+
87
+ Prints "UP", plus the server pid, if the server is running.
88
+ Otherwise, prints "DOWN".
89
+ }
90
+
91
+ def execute
92
+ if pid = passenger_pid
93
+ puts "UP (pid #{pid})"
94
+ else
95
+ puts "DOWN"
96
+ end
97
+ end
98
+
99
+ end
100
+
101
+ subcommand "run", "Run Passenger Standalone." do
102
+
48
103
  def execute
49
- sh("passenger status -p #{passenger_port}")
104
+ sh("passenger start -p #{passenger_port}")
50
105
  end
51
106
 
52
107
  end
@@ -54,7 +109,7 @@ class Platform1Command < Clamp::Command
54
109
  subcommand "open", "Open app in a browser." do
55
110
 
56
111
  parameter "[PATH]", "a path to append to the app url"
57
-
112
+
58
113
  def execute
59
114
  Launchy.open(url(path))
60
115
  end
@@ -62,13 +117,13 @@ class Platform1Command < Clamp::Command
62
117
  end
63
118
 
64
119
  subcommand "url", "Print application url." do
65
-
120
+
66
121
  def execute
67
122
  puts application_url
68
123
  end
69
124
 
70
125
  end
71
-
126
+
72
127
  subcommand "restart", "Ask app to restart" do
73
128
 
74
129
  def execute
@@ -78,13 +133,28 @@ class Platform1Command < Clamp::Command
78
133
  end
79
134
 
80
135
  private
81
-
136
+
82
137
  def passenger_port
83
138
  configuration["port"] || signal_usage_error("port not defined: please run 'init' first")
84
139
  end
85
140
 
141
+ def passenger_pid
142
+ return nil unless File.exists?(passenger_pid_file)
143
+ pid = Integer(File.read(passenger_pid_file))
144
+ begin
145
+ Process.kill(0, pid) # check that it's actually running
146
+ pid
147
+ rescue Errno::ESRCH
148
+ nil
149
+ end
150
+ end
151
+
152
+ def passenger_pid_file
153
+ "tmp/pids/passenger.#{passenger_port}.pid"
154
+ end
155
+
86
156
  def application_url
87
- "http://127.0.0.1:#{passenger_port}/"
157
+ "http://localhost:#{passenger_port}/"
88
158
  end
89
159
 
90
160
  def url(path = nil)
@@ -94,7 +164,7 @@ class Platform1Command < Clamp::Command
94
164
  end
95
165
  url
96
166
  end
97
-
167
+
98
168
  def sh(command)
99
169
  system(command) || raise("Error running: #{command.inspect}")
100
170
  end
data/platform1.gemspec CHANGED
@@ -2,17 +2,17 @@
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
-
5
+
6
6
  gem.name = "platform1"
7
- gem.version = "0.0.3"
7
+ gem.version = "0.0.4"
8
8
  gem.platform = Gem::Platform::RUBY
9
-
9
+
10
10
  gem.authors = ["Mike Williams"]
11
11
  gem.email = ["mdub@dogbiscuit.org"]
12
12
 
13
13
  gem.summary = %q{Simple and speedy Rails/Rack development server.}
14
14
  gem.description = %q{A thin wrapper around Passenger Standalone.}
15
-
15
+
16
16
  gem.files = `git ls-files`.split("\n")
17
17
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
18
  gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
metadata CHANGED
@@ -1,95 +1,86 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: platform1
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
4
5
  prerelease:
5
- version: 0.0.3
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Mike Williams
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-04-21 00:00:00 +10:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-23 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: clamp
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70256246804980 !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
24
21
  version: 0.1.8
25
22
  type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: passenger
29
23
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70256246804980
25
+ - !ruby/object:Gem::Dependency
26
+ name: passenger
27
+ requirement: &70256246804200 !ruby/object:Gem::Requirement
31
28
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: "3.0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
36
33
  type: :runtime
37
- version_requirements: *id002
38
- - !ruby/object:Gem::Dependency
39
- name: launchy
40
34
  prerelease: false
41
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *70256246804200
36
+ - !ruby/object:Gem::Dependency
37
+ name: launchy
38
+ requirement: &70256246803720 !ruby/object:Gem::Requirement
42
39
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
46
43
  version: 0.4.0
47
44
  type: :runtime
48
- version_requirements: *id003
45
+ prerelease: false
46
+ version_requirements: *70256246803720
49
47
  description: A thin wrapper around Passenger Standalone.
50
- email:
48
+ email:
51
49
  - mdub@dogbiscuit.org
52
- executables:
50
+ executables:
53
51
  - p1
54
52
  - platform1
55
53
  extensions: []
56
-
57
54
  extra_rdoc_files: []
58
-
59
- files:
55
+ files:
60
56
  - .gitignore
61
57
  - Gemfile
62
58
  - Rakefile
63
59
  - bin/p1
64
60
  - bin/platform1
65
61
  - platform1.gemspec
66
- has_rdoc: true
67
62
  homepage:
68
63
  licenses: []
69
-
70
64
  post_install_message:
71
65
  rdoc_options: []
72
-
73
- require_paths:
66
+ require_paths:
74
67
  - lib
75
- required_ruby_version: !ruby/object:Gem::Requirement
68
+ required_ruby_version: !ruby/object:Gem::Requirement
76
69
  none: false
77
- requirements:
78
- - - ">="
79
- - !ruby/object:Gem::Version
80
- version: "0"
81
- required_rubygems_version: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ! '>='
72
+ - !ruby/object:Gem::Version
73
+ version: '0'
74
+ required_rubygems_version: !ruby/object:Gem::Requirement
82
75
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- version: "0"
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
87
80
  requirements: []
88
-
89
81
  rubyforge_project:
90
- rubygems_version: 1.6.2
82
+ rubygems_version: 1.8.11
91
83
  signing_key:
92
84
  specification_version: 3
93
85
  summary: Simple and speedy Rails/Rack development server.
94
86
  test_files: []
95
-