dyn-ruby-launchctl 0.1.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.
- 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: []
|