lunchy 0.8.0 → 0.9.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 +4 -4
- data/History.md +5 -0
- data/bin/lunchy +6 -0
- data/lib/lunchy.rb +18 -6
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07dc58fb1d8df9832cdd1e06b8c0912b140f92ce
|
4
|
+
data.tar.gz: 64a162c04b414c99d58fad53e8fb0bdefca2f92f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 49a0d51f2d0994bd14a2592d8c9614f42a1272a95bc685677402728159a04d9c348d5dcc8fde471027e22d5e88d9140ddbfbdcaa373804dc2483c1f1f214fd90
|
7
|
+
data.tar.gz: 50446916542c4a3aaf1a09e918ff6582af4b6357dc70f7b1b797248a29b3ea572db8d22efab07f03d5fc4f4479f2c2e5adcd17998ee730720e9479b065b2eec2
|
data/History.md
CHANGED
data/bin/lunchy
CHANGED
@@ -11,6 +11,10 @@ option_parser = OptionParser.new do |opts|
|
|
11
11
|
opts.banner = "Lunchy #{Lunchy::VERSION}, the friendly launchctl wrapper\n" \
|
12
12
|
"Usage: #{File.basename(__FILE__)} [#{OPERATIONS.join('|')}] [options]"
|
13
13
|
|
14
|
+
opts.on("-x", "--exact", "Force exact (case insensitive) match when specifying a [pattern]") do
|
15
|
+
CONFIG[:exact] = true
|
16
|
+
end
|
17
|
+
|
14
18
|
opts.on("-F", "--force", "Force start (disabled) agents") do |verbose|
|
15
19
|
CONFIG[:force] = true
|
16
20
|
end
|
@@ -48,6 +52,7 @@ Supported commands:
|
|
48
52
|
|
49
53
|
-w will persist the start/stop command so the agent will load on startup or never load, respectively.
|
50
54
|
-l will display absolute paths of the launchctl daemon files when showing list of installed agents.
|
55
|
+
-x will force exact matching of the [pattern] for any command that uses a pattern
|
51
56
|
|
52
57
|
Example:
|
53
58
|
lunchy ls
|
@@ -58,6 +63,7 @@ Example:
|
|
58
63
|
lunchy install /usr/local/Cellar/redis/2.2.2/io.redis.redis-server.plist
|
59
64
|
lunchy show redis
|
60
65
|
lunchy edit mongo
|
66
|
+
lunchy uninstall -x elasticsearch # will not try to uninstall elasticsearch14
|
61
67
|
|
62
68
|
Note: if you run lunchy as root, you can manage daemons in /Library/LaunchDaemons also.
|
63
69
|
EOS
|
data/lib/lunchy.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
3
|
class Lunchy
|
4
|
-
VERSION = '0.
|
4
|
+
VERSION = '0.9.0'
|
5
5
|
|
6
6
|
def start(params)
|
7
7
|
raise ArgumentError, "start [-wF] [name]" if params.empty?
|
@@ -27,9 +27,8 @@ class Lunchy
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def status(params)
|
30
|
-
pattern = params[0]
|
30
|
+
pattern = pattern_for_grep params[0]
|
31
31
|
cmd = "launchctl list"
|
32
|
-
|
33
32
|
unless verbose?
|
34
33
|
agents = plists.keys.map { |k| "-e \"#{k}\"" }.join(" ")
|
35
34
|
cmd << " | grep -i #{agents}"
|
@@ -41,8 +40,9 @@ class Lunchy
|
|
41
40
|
end
|
42
41
|
|
43
42
|
def ls(params)
|
43
|
+
pattern = pattern_regex params[0]
|
44
44
|
agents = plists.keys
|
45
|
-
agents = agents.grep(
|
45
|
+
agents = agents.grep(pattern) if !params.empty?
|
46
46
|
if long
|
47
47
|
puts agents.map { |agent| plists[agent] }.sort.join("\n")
|
48
48
|
else
|
@@ -104,6 +104,10 @@ class Lunchy
|
|
104
104
|
|
105
105
|
private
|
106
106
|
|
107
|
+
def exact
|
108
|
+
CONFIG[:exact]
|
109
|
+
end
|
110
|
+
|
107
111
|
def force
|
108
112
|
CONFIG[:force] and '-F '
|
109
113
|
end
|
@@ -120,14 +124,22 @@ class Lunchy
|
|
120
124
|
CONFIG[:symlink]
|
121
125
|
end
|
122
126
|
|
127
|
+
def pattern_for_grep(s)
|
128
|
+
exact ? "\\b#{s}\\b" : s if s
|
129
|
+
end
|
130
|
+
|
131
|
+
def pattern_regex(s)
|
132
|
+
/#{pattern_for_grep(s)}/i
|
133
|
+
end
|
134
|
+
|
123
135
|
def with_match(name)
|
124
|
-
files = plists.select {|k,_| k =~
|
136
|
+
files = plists.select {|k,_| k =~ pattern_regex(name) }
|
125
137
|
files = Hash[files] if files.is_a?(Array) # ruby 1.8
|
126
138
|
|
127
139
|
if files.size > 1
|
128
140
|
puts "Multiple daemons found matching '#{name}'. You need to be more specific. Matches found are:\n#{files.keys.join("\n")}"
|
129
141
|
elsif files.empty?
|
130
|
-
puts "No daemon found matching '#{name}'"
|
142
|
+
puts "No daemon found matching '#{name}' #{exact ? 'exactly' : nil}" if name
|
131
143
|
else
|
132
144
|
yield(*files.to_a.first)
|
133
145
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lunchy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Perham
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -61,7 +61,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
61
61
|
version: '0'
|
62
62
|
requirements: []
|
63
63
|
rubyforge_project:
|
64
|
-
rubygems_version: 2.
|
64
|
+
rubygems_version: 2.4.5
|
65
65
|
signing_key:
|
66
66
|
specification_version: 4
|
67
67
|
summary: Friendly wrapper around launchctl
|