post_office 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -54,13 +54,23 @@ It's possible to start PostOffice as a daemon using post_officed:
54
54
  -h, --help Show this message
55
55
  --version Show version
56
56
 
57
+ Mac OS X Startup Item
58
+ ---------------------
59
+
60
+ PostOffice daemon can be started on Mac OS X system startup.
61
+
62
+ sudo post_office [options]
63
+
64
+ --install-osx-startup-item Installs Post Office as OS X Startup Item
65
+ --remove-osx-startup-item Removes Post Office as OS X Startup Item
66
+
67
+ The Startup Item is stored in */Library/StartupItems/PostOffice*
68
+
57
69
  Planned features
58
70
  ----------------
59
71
 
60
72
  * Ability to use custom ports for SMTP and POP
61
73
  * Growl notifications
62
- * Mac OS X Startup Item / launchctl service
63
74
  * Store mail in tempfiles instead of in-memory array
64
- * Tests :)
65
75
 
66
76
  Contributions are welcome! Feel free to fork and send a pull request through Github.
data/Rakefile CHANGED
@@ -16,4 +16,4 @@ begin
16
16
  end
17
17
  rescue LoadError
18
18
  puts "Jeweler not available. Install it with: sudo gem install jeweler"
19
- end
19
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.3.0
data/bin/post_office CHANGED
@@ -24,6 +24,14 @@ optparse = OptionParser.new do |opts|
24
24
  opts.on( '-l', '--logfile FILE', 'Write log to FILE. Outputs to STDOUT (or /var/log/post_office.log when daemonized) by default.' ) do |file|
25
25
  options[:logfile] = file
26
26
  end
27
+
28
+ options[:startup_item] = nil
29
+ opts.on('--install-osx-startup-item', 'Installs Post Office as OS X Startup Item') do
30
+ options[:startup_item] = :install
31
+ end
32
+ opts.on('--remove-osx-startup-item', 'Removes Post Office as OS X Startup Item') do
33
+ options[:startup_item] = :remove
34
+ end
27
35
 
28
36
  opts.on( '-h', '--help', 'Display this screen' ) do
29
37
  puts opts
@@ -33,6 +41,18 @@ end
33
41
 
34
42
  optparse.parse!
35
43
 
44
+ #
45
+ # OS X Startup Item
46
+ #
47
+ if options[:startup_item]
48
+ require 'startup_item.rb'
49
+ case options[:startup_item]
50
+ when :install then StartupItem.install
51
+ when :remove then StartupItem.remove
52
+ end
53
+ exit
54
+ end
55
+
36
56
  #
37
57
  # Create our logger
38
58
  #
@@ -0,0 +1,47 @@
1
+ class StartupItem
2
+ def self.install
3
+ target_path = File.join("/","Library","StartupItems")
4
+
5
+ # We cannot install this twice
6
+ if File.exists?(File.join(target_path,"PostOffice"))
7
+ puts "PostOffice Startup Item is already installed."
8
+ exit
9
+ end
10
+
11
+ # We need /usr/bin/post_officed for this startup item to function
12
+ unless File.exists?(File.join("/","usr","bin","post_officed"))
13
+ puts "Error: missing /usr/bin/post_officed. Have you gem install post_office?"
14
+ exit
15
+ end
16
+
17
+ puts "Installing Post Office Mac OS X Startup Item..."
18
+
19
+ # Make sure /Library/StartupItems exists
20
+ FileUtils.mkdir_p(target_path)
21
+
22
+ source = File.join(File.dirname(__FILE__), "..", "startup_item", "PostOffice")
23
+ destination = File.join(target_path, "PostOffice")
24
+
25
+ FileUtils.cp_r(source, destination)
26
+
27
+ puts "Successfully installed Startup Item!"
28
+ end
29
+
30
+ def self.remove
31
+ target_path = File.join("/","Library","StartupItems")
32
+
33
+ unless File.exists?(File.join(target_path,"PostOffice"))
34
+ puts "PostOffice Startup Item not installed."
35
+ exit
36
+ end
37
+
38
+ puts "removing Post Office Mac OS X Startup Item..."
39
+ FileUtils.rm_rf(File.join(target_path, "PostOffice"))
40
+
41
+ unless File.exists?(File.join(target_path,"PostOffice"))
42
+ puts "Successfully removed Startup Item!"
43
+ else
44
+ puts "Unable to remove Startup Item: hae you used sudo?"
45
+ end
46
+ end
47
+ end
Binary file
data/post_office.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{post_office}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Rene van Lieshout"]
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
28
28
  "lib/store.rb",
29
29
  "pkg/post_office-0.1.0.gem",
30
30
  "pkg/post_office-0.2.0.gem",
31
+ "pkg/post_office-0.2.1.gem",
31
32
  "post_office.gemspec"
32
33
  ]
33
34
  s.homepage = %q{http://github.com/bluerail/post_office}
@@ -0,0 +1,27 @@
1
+ #!/bin/sh
2
+
3
+ ##
4
+ # Post Office Daemon
5
+ ##
6
+
7
+ . /etc/rc.common
8
+
9
+ StartService ()
10
+ {
11
+ ConsoleMessage "Starting PostOffice"
12
+ /usr/bin/post_officed start
13
+ }
14
+
15
+ StopService ()
16
+ {
17
+ ConsoleMessage "Stopping PostOffice"
18
+ /usr/bin/post_officed stop
19
+ }
20
+
21
+ RestartService ()
22
+ {
23
+ ConsoleMessage "Restarting PostOffice"
24
+ /usr/bin/post_officed restart
25
+ }
26
+
27
+ RunService "$1"
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Description</key>
6
+ <string>Post Office Daemon</string>
7
+ <key>OrderPreference</key>
8
+ <string>None</string>
9
+ <key>Provides</key>
10
+ <array>
11
+ <string>PostOffice</string>
12
+ </array>
13
+ <key>Uses</key>
14
+ <array>
15
+ <string>Network</string>
16
+ <string>Disks</string>
17
+ </array>
18
+ </dict>
19
+ </plist>
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: post_office
3
3
  version: !ruby/object:Gem::Version
4
- hash: 21
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
9
- - 1
10
- version: 0.2.1
8
+ - 3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Rene van Lieshout
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-19 00:00:00 +02:00
18
+ date: 2011-05-18 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -37,10 +37,14 @@ files:
37
37
  - lib/generic_server.rb
38
38
  - lib/pop_server.rb
39
39
  - lib/smtp_server.rb
40
+ - lib/startup_item.rb
40
41
  - lib/store.rb
41
42
  - pkg/post_office-0.1.0.gem
42
43
  - pkg/post_office-0.2.0.gem
44
+ - pkg/post_office-0.2.1.gem
43
45
  - post_office.gemspec
46
+ - startup_item/PostOffice/PostOffice
47
+ - startup_item/PostOffice/StartupParameters.plist
44
48
  has_rdoc: true
45
49
  homepage: http://github.com/bluerail/post_office
46
50
  licenses: []