launch-agent 0.1.0 → 0.2.0
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/.gitignore +24 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/Rakefile +6 -41
- data/bin/launchagent +8 -0
- data/bin/launchagent-daemon +32 -0
- data/launch-agent.gemspec +16 -47
- data/lib/launch_agent.rb +4 -0
- data/lib/launch_agent/base.rb +97 -0
- data/lib/launch_agent/daemon.rb +8 -63
- data/lib/launch_agent/version.rb +4 -0
- data/spec/daemon_spec.rb +9 -1
- data/spec/spec_helper.rb +12 -5
- metadata +74 -58
- data/.document +0 -5
- data/VERSION +0 -1
- data/bin/launch-agent-daemonize +0 -17
- data/spec/spec.opts +0 -1
data/.gitignore
ADDED
data/.rspec
ADDED
data/Gemfile
ADDED
data/Rakefile
CHANGED
@@ -1,46 +1,11 @@
|
|
1
|
-
|
1
|
+
#!/usr/bin/env rake
|
2
2
|
require 'rake'
|
3
|
+
require "bundler/gem_tasks"
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
gem.summary = %Q{A library to use launchd easily}
|
9
|
-
gem.description = %Q{A library to use launchd easily}
|
10
|
-
gem.email = "youpy@buycheapviagraonlinenow.com"
|
11
|
-
gem.homepage = "http://github.com/youpy/ruby-launch-agent"
|
12
|
-
gem.authors = ["youpy"]
|
13
|
-
gem.add_development_dependency "rspec", ">= 1.2.9"
|
14
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
|
-
gem.executables = ["launch-agent-daemonize"]
|
16
|
-
end
|
17
|
-
Jeweler::GemcutterTasks.new
|
18
|
-
rescue LoadError
|
19
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
5
|
+
require 'rspec/core'
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
8
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
20
9
|
end
|
21
10
|
|
22
|
-
require 'spec/rake/spectask'
|
23
|
-
Spec::Rake::SpecTask.new(:spec) do |spec|
|
24
|
-
spec.libs << 'lib' << 'spec'
|
25
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
26
|
-
end
|
27
|
-
|
28
|
-
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
29
|
-
spec.libs << 'lib' << 'spec'
|
30
|
-
spec.pattern = 'spec/**/*_spec.rb'
|
31
|
-
spec.rcov = true
|
32
|
-
end
|
33
|
-
|
34
|
-
task :spec => :check_dependencies
|
35
|
-
|
36
11
|
task :default => :spec
|
37
|
-
|
38
|
-
require 'rdoc/task'
|
39
|
-
Rake::RDocTask.new do |rdoc|
|
40
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
41
|
-
|
42
|
-
rdoc.rdoc_dir = 'rdoc'
|
43
|
-
rdoc.title = "ruby-launch-agent #{version}"
|
44
|
-
rdoc.rdoc_files.include('README*')
|
45
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
46
|
-
end
|
data/bin/launchagent
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'git-style-binary/command'
|
4
|
+
|
5
|
+
GitStyleBinary.command do
|
6
|
+
short_desc "load/unload a daemon-like agent"
|
7
|
+
banner <<-EOS
|
8
|
+
Usage: #{command.full_name} #{all_options_string} {full command}
|
9
|
+
|
10
|
+
Load/Unload a daemon-like launchd agent
|
11
|
+
|
12
|
+
|
13
|
+
EOS
|
14
|
+
opt :env, "additional environmental variables to be set before running the job. can specify multiple times", :type => String, :multi => true
|
15
|
+
|
16
|
+
run do |command|
|
17
|
+
abort 'full command must be supplised' if command.argv.empty?
|
18
|
+
|
19
|
+
agent = LaunchAgent::Daemon.new(*command.argv)
|
20
|
+
|
21
|
+
agent['EnvironmentVariables'] = command.opts[:env].inject({}) do |memo, env|
|
22
|
+
k, v = env.split('=')
|
23
|
+
memo[k] = v
|
24
|
+
memo
|
25
|
+
end
|
26
|
+
|
27
|
+
action = agent.loaded? ? :unload : :load
|
28
|
+
agent.send(action)
|
29
|
+
|
30
|
+
puts '%s "%s"' % [action, command.argv.join(' ')]
|
31
|
+
end
|
32
|
+
end
|
data/launch-agent.gemspec
CHANGED
@@ -1,52 +1,21 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/launch_agent/version', __FILE__)
|
5
3
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["youpy"]
|
6
|
+
gem.email = ["youpy@buycheapviagraonlinenow.com"]
|
7
|
+
gem.description = %q{A library to use launchd easily}
|
8
|
+
gem.summary = %q{A library to use launchd easily}
|
9
|
+
gem.homepage = ""
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
s.executables = ["launch-agent-daemonize"]
|
17
|
-
s.extra_rdoc_files = [
|
18
|
-
"LICENSE",
|
19
|
-
"README.rdoc"
|
20
|
-
]
|
21
|
-
s.files = [
|
22
|
-
".document",
|
23
|
-
"LICENSE",
|
24
|
-
"README.rdoc",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION",
|
27
|
-
"launch-agent.gemspec",
|
28
|
-
"lib/launch_agent.rb",
|
29
|
-
"lib/launch_agent/daemon.rb",
|
30
|
-
"spec/daemon_spec.rb",
|
31
|
-
"spec/spec.opts",
|
32
|
-
"spec/spec_helper.rb"
|
33
|
-
]
|
34
|
-
s.homepage = %q{http://github.com/youpy/ruby-launch-agent}
|
35
|
-
s.require_paths = ["lib"]
|
36
|
-
s.rubygems_version = %q{1.3.6}
|
37
|
-
s.summary = %q{A library to use launchd easily}
|
11
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
12
|
+
gem.files = `git ls-files`.split("\n")
|
13
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
|
+
gem.name = %q{launch-agent}
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = LaunchAgent::VERSION
|
38
17
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
44
|
-
s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
|
45
|
-
else
|
46
|
-
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
47
|
-
end
|
48
|
-
else
|
49
|
-
s.add_dependency(%q<rspec>, [">= 1.2.9"])
|
50
|
-
end
|
18
|
+
gem.add_dependency('plist')
|
19
|
+
gem.add_dependency('git-style-binaries')
|
20
|
+
gem.add_development_dependency('rspec', ['~> 2.8.0'])
|
51
21
|
end
|
52
|
-
|
data/lib/launch_agent.rb
CHANGED
@@ -0,0 +1,97 @@
|
|
1
|
+
module LaunchAgent
|
2
|
+
class Base
|
3
|
+
DOMAIN = 'com.buycheapviagraonlinenow'
|
4
|
+
KEYS = [
|
5
|
+
'Label',
|
6
|
+
'Disabled',
|
7
|
+
'UserName',
|
8
|
+
'GroupName',
|
9
|
+
'inetdCompatibility',
|
10
|
+
'LimitLoadToHosts',
|
11
|
+
'LimitLoadFromHosts',
|
12
|
+
'LimitLoadToSessionType',
|
13
|
+
'Program',
|
14
|
+
'ProgramArguments',
|
15
|
+
'EnableGlobbing',
|
16
|
+
'EnableTransactions',
|
17
|
+
'OnDemand',
|
18
|
+
'KeepAlive',
|
19
|
+
'RunAtLoad',
|
20
|
+
'RootDirectory',
|
21
|
+
'WorkingDirectory',
|
22
|
+
'EnvironmentVariables',
|
23
|
+
'Umask',
|
24
|
+
'TimeOut',
|
25
|
+
'ExitTimeOut',
|
26
|
+
'ThrottleInterval',
|
27
|
+
'InitGroups',
|
28
|
+
'WatchPaths',
|
29
|
+
'QueueDirectories',
|
30
|
+
'StartOnMount',
|
31
|
+
'StartInterval',
|
32
|
+
'StartCalendarInterval',
|
33
|
+
'StandardInPath',
|
34
|
+
'StandardOutPath',
|
35
|
+
'StandardErrorPath',
|
36
|
+
'Debug',
|
37
|
+
'WaitForDebugger',
|
38
|
+
'SoftResourceLimits',
|
39
|
+
'HardResourceLimits',
|
40
|
+
'Nice',
|
41
|
+
'AbandonProcessGroup',
|
42
|
+
'LowPriorityIO',
|
43
|
+
'LaunchOnlyOnce',
|
44
|
+
'MachServices',
|
45
|
+
'Sockets'
|
46
|
+
]
|
47
|
+
|
48
|
+
def initialize(*args)
|
49
|
+
@args = args
|
50
|
+
@params = {}
|
51
|
+
@user_params = {}
|
52
|
+
end
|
53
|
+
|
54
|
+
def load
|
55
|
+
open(plist_filename, 'w') do |file|
|
56
|
+
file.write(plist_content)
|
57
|
+
end
|
58
|
+
|
59
|
+
`launchctl load -w #{plist_filename}`
|
60
|
+
end
|
61
|
+
|
62
|
+
def unload
|
63
|
+
`launchctl unload -w #{plist_filename}`
|
64
|
+
|
65
|
+
File.unlink(plist_filename)
|
66
|
+
end
|
67
|
+
|
68
|
+
def loaded?
|
69
|
+
`launchctl list | grep #{job_id}` =~ /#{job_id}/
|
70
|
+
end
|
71
|
+
|
72
|
+
def []=(key, value)
|
73
|
+
if KEYS.include?(key)
|
74
|
+
@user_params[key] = value
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
def plist_filename
|
79
|
+
File.expand_path('~/Library/LaunchAgents/' + job_id + '.plist')
|
80
|
+
end
|
81
|
+
|
82
|
+
def build_params
|
83
|
+
end
|
84
|
+
|
85
|
+
def plist_content
|
86
|
+
build_params
|
87
|
+
|
88
|
+
@params.merge(@user_params).to_plist
|
89
|
+
end
|
90
|
+
|
91
|
+
def job_id
|
92
|
+
DOMAIN + '.' + @args.inject([]) do |m, arg|
|
93
|
+
m << arg.gsub(/\W/, '_')
|
94
|
+
end.join('__')
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|
data/lib/launch_agent/daemon.rb
CHANGED
@@ -1,67 +1,12 @@
|
|
1
1
|
module LaunchAgent
|
2
|
-
class Daemon
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
open(plist_filename, 'w') do |file|
|
11
|
-
file.write(plist_content)
|
12
|
-
end
|
13
|
-
|
14
|
-
`launchctl load -w #{plist_filename}`
|
15
|
-
end
|
16
|
-
|
17
|
-
def unload
|
18
|
-
`launchctl unload -w #{plist_filename}`
|
19
|
-
File.unlink(plist_filename)
|
20
|
-
end
|
21
|
-
|
22
|
-
def loaded?
|
23
|
-
`launchctl list | grep #{job_id}` =~ /#{job_id}/
|
24
|
-
end
|
25
|
-
|
26
|
-
def plist_filename
|
27
|
-
File.expand_path('~/Library/LaunchAgents/' + job_id + '.plist')
|
28
|
-
end
|
29
|
-
|
30
|
-
def plist_content
|
31
|
-
template = <<PLIST
|
32
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
33
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
34
|
-
<plist version="1.0">
|
35
|
-
<dict>
|
36
|
-
<key>KeepAlive</key>
|
37
|
-
<dict>
|
38
|
-
<key>SuccessfulExit</key>
|
39
|
-
<false/>
|
40
|
-
</dict>
|
41
|
-
<key>Label</key>
|
42
|
-
<string>%s</string>
|
43
|
-
<key>ProgramArguments</key>
|
44
|
-
<array>
|
45
|
-
%s
|
46
|
-
</array>
|
47
|
-
<key>RunAtLoad</key>
|
48
|
-
<true/>
|
49
|
-
</dict>
|
50
|
-
</plist>
|
51
|
-
PLIST
|
52
|
-
template % [job_id, xmlized_args]
|
53
|
-
end
|
54
|
-
|
55
|
-
def job_id
|
56
|
-
DOMAIN + '.' + @args.inject([]) do |m, arg|
|
57
|
-
m << arg.gsub(/\W/, '_')
|
58
|
-
end.join('__')
|
59
|
-
end
|
60
|
-
|
61
|
-
def xmlized_args
|
62
|
-
@args.inject([]) do |m, arg|
|
63
|
-
m << "\t\t<string>#{arg}</string>"
|
64
|
-
end.join("\n")
|
2
|
+
class Daemon < Base
|
3
|
+
def build_params
|
4
|
+
@params['Label'] = job_id
|
5
|
+
@params['KeepAlive'] = {
|
6
|
+
'SuccessfulExit' => false
|
7
|
+
}
|
8
|
+
@params['ProgramArguments'] = @args
|
9
|
+
@params['RunAtLoad'] = true
|
65
10
|
end
|
66
11
|
end
|
67
12
|
end
|
data/spec/daemon_spec.rb
CHANGED
@@ -4,6 +4,12 @@ describe LaunchAgent::Daemon do
|
|
4
4
|
before do
|
5
5
|
@plist_filename = File.expand_path('~/Library/LaunchAgents/com.buycheapviagraonlinenow.ruby__foo_rb.plist')
|
6
6
|
@agent = LaunchAgent::Daemon.new('ruby', 'foo.rb')
|
7
|
+
|
8
|
+
# key exists
|
9
|
+
@agent['WorkingDirectory'] = '/foo/bar'
|
10
|
+
|
11
|
+
# key does not exists
|
12
|
+
@agent['XXX'] = 'YYY'
|
7
13
|
end
|
8
14
|
|
9
15
|
after do
|
@@ -21,7 +27,7 @@ describe LaunchAgent::Daemon do
|
|
21
27
|
File.exists?(@plist_filename).should be_true
|
22
28
|
open(@plist_filename).read.should eql(<<PLIST)
|
23
29
|
<?xml version="1.0" encoding="UTF-8"?>
|
24
|
-
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
30
|
+
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
25
31
|
<plist version="1.0">
|
26
32
|
<dict>
|
27
33
|
<key>KeepAlive</key>
|
@@ -38,6 +44,8 @@ describe LaunchAgent::Daemon do
|
|
38
44
|
</array>
|
39
45
|
<key>RunAtLoad</key>
|
40
46
|
<true/>
|
47
|
+
<key>WorkingDirectory</key>
|
48
|
+
<string>/foo/bar</string>
|
41
49
|
</dict>
|
42
50
|
</plist>
|
43
51
|
PLIST
|
data/spec/spec_helper.rb
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
2
1
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
|
3
|
+
require 'rubygems'
|
3
4
|
require 'launch_agent'
|
4
|
-
require 'spec'
|
5
|
-
require 'spec/autorun'
|
6
5
|
|
7
|
-
|
8
|
-
|
6
|
+
# This file was generated by the `rspec --init` command. Conventionally, all
|
7
|
+
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
8
|
+
# Require this file using `require "spec_helper.rb"` to ensure that it is only
|
9
|
+
# loaded once.
|
10
|
+
#
|
11
|
+
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
12
|
+
RSpec.configure do |config|
|
13
|
+
config.treat_symbols_as_metadata_keys_with_true_values = true
|
14
|
+
config.run_all_when_everything_filtered = true
|
15
|
+
config.filter_run :focus
|
9
16
|
end
|
metadata
CHANGED
@@ -1,87 +1,103 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: launch-agent
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
version: 0.1.0
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- youpy
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
12
|
+
date: 2012-04-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: plist
|
16
|
+
requirement: &70217570899260 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *70217570899260
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: git-style-binaries
|
27
|
+
requirement: &70217570898840 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
22
34
|
prerelease: false
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
version:
|
35
|
+
version_requirements: *70217570898840
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &70217570898320 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 2.8.0
|
32
44
|
type: :development
|
33
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70217570898320
|
34
47
|
description: A library to use launchd easily
|
35
|
-
email:
|
36
|
-
|
37
|
-
|
48
|
+
email:
|
49
|
+
- youpy@buycheapviagraonlinenow.com
|
50
|
+
executables:
|
51
|
+
- launchagent
|
52
|
+
- launchagent-daemon
|
38
53
|
extensions: []
|
39
|
-
|
40
|
-
|
41
|
-
-
|
42
|
-
-
|
43
|
-
|
44
|
-
- .document
|
54
|
+
extra_rdoc_files: []
|
55
|
+
files:
|
56
|
+
- .gitignore
|
57
|
+
- .rspec
|
58
|
+
- Gemfile
|
45
59
|
- LICENSE
|
46
60
|
- README.rdoc
|
47
61
|
- Rakefile
|
48
|
-
-
|
49
|
-
- bin/
|
62
|
+
- bin/launchagent
|
63
|
+
- bin/launchagent-daemon
|
50
64
|
- launch-agent.gemspec
|
51
65
|
- lib/launch_agent.rb
|
66
|
+
- lib/launch_agent/base.rb
|
52
67
|
- lib/launch_agent/daemon.rb
|
68
|
+
- lib/launch_agent/version.rb
|
53
69
|
- spec/daemon_spec.rb
|
54
|
-
- spec/spec.opts
|
55
70
|
- spec/spec_helper.rb
|
56
|
-
|
57
|
-
homepage: http://github.com/youpy/ruby-launch-agent
|
71
|
+
homepage: ''
|
58
72
|
licenses: []
|
59
|
-
|
60
73
|
post_install_message:
|
61
74
|
rdoc_options: []
|
62
|
-
|
63
|
-
require_paths:
|
75
|
+
require_paths:
|
64
76
|
- lib
|
65
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
77
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
78
|
+
none: false
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
segments:
|
70
84
|
- 0
|
71
|
-
|
72
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
85
|
+
hash: 2630477314402493584
|
86
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ! '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
segments:
|
77
93
|
- 0
|
78
|
-
|
94
|
+
hash: 2630477314402493584
|
79
95
|
requirements: []
|
80
|
-
|
81
96
|
rubyforge_project:
|
82
|
-
rubygems_version: 1.
|
97
|
+
rubygems_version: 1.8.10
|
83
98
|
signing_key:
|
84
99
|
specification_version: 3
|
85
100
|
summary: A library to use launchd easily
|
86
|
-
test_files:
|
87
|
-
|
101
|
+
test_files:
|
102
|
+
- spec/daemon_spec.rb
|
103
|
+
- spec/spec_helper.rb
|
data/.document
DELETED
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.0
|
data/bin/launch-agent-daemonize
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
%w/rubygems launch_agent/.each {|g| require g }
|
4
|
-
|
5
|
-
def usage
|
6
|
-
print <<EOM
|
7
|
-
usage: #{File.basename($0)} command [arg ...]
|
8
|
-
EOM
|
9
|
-
exit 0
|
10
|
-
end
|
11
|
-
|
12
|
-
usage if ARGV.empty?
|
13
|
-
|
14
|
-
agent = LaunchAgent::Daemon.new(*ARGV)
|
15
|
-
action = agent.loaded? ? :unload : :load
|
16
|
-
agent.send(action)
|
17
|
-
warn '%s "%s"' % [action, ARGV.join(' ')]
|
data/spec/spec.opts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--color
|