dyn-ruby-launchctl 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +1 -0
- data/bin/dyn-daemon +91 -0
- metadata +49 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: f7bf1cc2e0dc0245cbdf517893520740041b776c
|
4
|
+
data.tar.gz: b9bcc0fa115cf31ce9718889e61baaa02519f6ac
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 66b6433dbc685c0d572459e1f407b56178259350e56007f512e1f020b354ffbb32608491f0da836690af468a5d7a189e616c5ab17c86500be7fe56677fb59a23
|
7
|
+
data.tar.gz: 573e6854a43716ee48a2fee670d6747828e2dc7a429006066d9475ed7397c014992687aba2009127a191f7caa68eaab689fe805d146cfd6c333bdd04200f5adf
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Dyn Daemon for MacOSX
|
data/bin/dyn-daemon
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require "fileutils"
|
3
|
+
SRV=ARGV[0].strip
|
4
|
+
exit! unless ["srv","dyntask","help","path","status"].include? SRV
|
5
|
+
CMD={ "srv" => "dyn-srv", "dyntask" => "dyntask-server"}[SRV]
|
6
|
+
if CMD
|
7
|
+
FileUtils.mkdir_p File.join(ENV["HOME"],"dyndoc","log")
|
8
|
+
DYN_DAEMON_ERR_FILE = File.join(ENV["HOME"],"dyndoc","log","launchctl_")+CMD+".err"
|
9
|
+
DYN_DAEMON_OUT_FILE = File.join(ENV["HOME"],"dyndoc","log","launchctl_")+CMD+".out"
|
10
|
+
end
|
11
|
+
|
12
|
+
unless RUBY_PLATFORM =~ /darwin/
|
13
|
+
puts "Only available for MacOSX!"
|
14
|
+
exit!
|
15
|
+
end
|
16
|
+
|
17
|
+
case SRV
|
18
|
+
when "help"
|
19
|
+
puts <<-DOC
|
20
|
+
Service helpers to launch dyn-srv or dyntask service.
|
21
|
+
Usage:
|
22
|
+
dyn-daemon srv|dyntask new|load => create when not existing the dyntask service
|
23
|
+
dyn-daemon srv|dyntask delete|unload => unload existing service
|
24
|
+
dyn-daemon srv|dyntask start/stop => start/stop the dyntask service
|
25
|
+
dyn-daemon srv|dyntask log => to watch log files
|
26
|
+
|
27
|
+
dyn-daemon status|list => status of dyntask service
|
28
|
+
dyn-daemon path get|set => set PATH env to $PATH
|
29
|
+
DOC
|
30
|
+
when "path"
|
31
|
+
mode=ARGV[1]
|
32
|
+
mode="get" if !mode or mode.empty?
|
33
|
+
if mode=="get"
|
34
|
+
puts `launchctl getenv PATH`
|
35
|
+
elsif mode=="set"
|
36
|
+
`launchctl setenv PATH $PATH`
|
37
|
+
end
|
38
|
+
when "status", "list"
|
39
|
+
puts `launchctl list | grep dyn`
|
40
|
+
else
|
41
|
+
dyn_plist=File.expand_path("~/Library/LaunchAgents/#{CMD}.plist")
|
42
|
+
mode=ARGV[1]
|
43
|
+
mode="list" if !mode or mode.empty?
|
44
|
+
case mode
|
45
|
+
when "load","new"
|
46
|
+
unless File.exists? dyn_plist
|
47
|
+
plist= <<-END.sub(/CMD/,CMD).sub(/DYNCMD/,`which #{CMD}`.strip).sub(/ERR_FILE/,DYN_DAEMON_ERR_FILE).sub(/OUT_FILE/,DYN_DAEMON_OUT_FILE)
|
48
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
49
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
50
|
+
<plist version="1.0">
|
51
|
+
<dict>
|
52
|
+
<key>Label</key>
|
53
|
+
<string>CMD</string>
|
54
|
+
<key>ProgramArguments</key>
|
55
|
+
<array>
|
56
|
+
<string>DYNCMD</string>
|
57
|
+
</array>
|
58
|
+
<key>RunAtLoad</key>
|
59
|
+
<true/>
|
60
|
+
<key>KeepAlive</key>
|
61
|
+
<dict>
|
62
|
+
<key>Crashed</key>
|
63
|
+
<true/>
|
64
|
+
</dict>
|
65
|
+
<key>StandardErrorPath</key>
|
66
|
+
<string>ERR_FILE</string>
|
67
|
+
<key>StandardOutPath</key>
|
68
|
+
<string>OUT_FILE</string>
|
69
|
+
</dict>
|
70
|
+
</plist>
|
71
|
+
END
|
72
|
+
File.open(dyn_plist,"w") do |f|
|
73
|
+
f << plist
|
74
|
+
end
|
75
|
+
end
|
76
|
+
`launchctl load #{dyn_plist}`
|
77
|
+
when "unload","delete"
|
78
|
+
if File.exists? dyn_srv_plist
|
79
|
+
`launchctl unload #{dyn_plist}`
|
80
|
+
else
|
81
|
+
puts "Service #{CMD} not available. Create it first: dyn-daemon #{SRV} new"
|
82
|
+
end
|
83
|
+
when "start", "stop"
|
84
|
+
`launchctl #{mode} #{CMD}`
|
85
|
+
when "log"
|
86
|
+
puts "Error:"
|
87
|
+
puts File.read(DYN_DAEMON_ERR_FILE)
|
88
|
+
puts "Out:"
|
89
|
+
puts File.read(DYN_DAEMON_OUT_FILE)
|
90
|
+
end
|
91
|
+
end
|
metadata
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dyn-ruby-launchctl
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- CQLS
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-03-16 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: |2
|
14
|
+
Managing dyn daemon.
|
15
|
+
email: rdrouilh@gmail.com
|
16
|
+
executables:
|
17
|
+
- dyn-daemon
|
18
|
+
extensions: []
|
19
|
+
extra_rdoc_files: []
|
20
|
+
files:
|
21
|
+
- bin/dyn-daemon
|
22
|
+
- README.md
|
23
|
+
homepage: http://rcqls.github.io
|
24
|
+
licenses:
|
25
|
+
- MIT
|
26
|
+
- GPL-2
|
27
|
+
metadata: {}
|
28
|
+
post_install_message:
|
29
|
+
rdoc_options: []
|
30
|
+
require_paths:
|
31
|
+
- lib
|
32
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - '>='
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - '>='
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
42
|
+
requirements:
|
43
|
+
- none
|
44
|
+
rubyforge_project:
|
45
|
+
rubygems_version: 2.0.14
|
46
|
+
signing_key:
|
47
|
+
specification_version: 4
|
48
|
+
summary: dyn-srv and dyntask daemon
|
49
|
+
test_files: []
|