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
         |