powify 0.8.5 → 0.9.1
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/.gitignore +25 -50
- data/Gemfile +1 -2
- data/README.md +81 -0
- data/lib/powify/app.rb +13 -5
- data/lib/powify/client.rb +7 -3
- data/lib/powify/core.rb +2 -1
- data/lib/powify/server.rb +22 -7
- data/lib/powify/utils.rb +2 -2
- data/lib/powify/version.rb +3 -0
- data/powify.gemspec +7 -7
- metadata +14 -27
- data/.document +0 -5
- data/Gemfile.lock +0 -16
- data/README.markdown +0 -240
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 932ae531a960913a9780ecea4c2b1b43b6d661b1
         | 
| 4 | 
            +
              data.tar.gz: 14fd4299b7fa0c10dd30e08de2cffe3082208128
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 6dc6ffcd7ed97dbb70ced50cc5bc75e0b2f81adfb1a106c75ae79d364ac724be8c4029c3c9563ca0ebecabc7ae54b1e1af087322a97d43bd6cd2c98905f2ada2
         | 
| 7 | 
            +
              data.tar.gz: 34c3a683889753394a0d9bb626d2a76e9220a2492f3fbccab92634c4263c0b380005c5dc69ca8fc2403b2f34e4e0cde234dbae2f19477c7e16b79d2d2429e611
         | 
    
        data/.gitignore
    CHANGED
    
    | @@ -1,51 +1,26 @@ | |
| 1 | 
            -
            # rcov generated
         | 
| 2 | 
            -
            coverage
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            # rdoc generated
         | 
| 5 | 
            -
            rdoc
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            # yard generated
         | 
| 8 | 
            -
            doc
         | 
| 9 | 
            -
            .yardoc
         | 
| 10 | 
            -
             | 
| 11 | 
            -
            # bundler
         | 
| 12 | 
            -
            .bundle
         | 
| 13 | 
            -
             | 
| 14 | 
            -
            # jeweler generated
         | 
| 15 | 
            -
            pkg
         | 
| 16 | 
            -
             | 
| 17 | 
            -
            # Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore: 
         | 
| 18 | 
            -
            #
         | 
| 19 | 
            -
            # * Create a file at ~/.gitignore
         | 
| 20 | 
            -
            # * Include files you want ignored
         | 
| 21 | 
            -
            # * Run: git config --global core.excludesfile ~/.gitignore
         | 
| 22 | 
            -
            #
         | 
| 23 | 
            -
            # After doing this, these files will be ignored in all your git projects,
         | 
| 24 | 
            -
            # saving you from having to 'pollute' every project you touch with them
         | 
| 25 | 
            -
            #
         | 
| 26 | 
            -
            # Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
         | 
| 27 | 
            -
            #
         | 
| 28 | 
            -
            # For MacOS:
         | 
| 29 | 
            -
            #
         | 
| 30 | 
            -
            #.DS_Store
         | 
| 31 | 
            -
             | 
| 32 | 
            -
            # For TextMate
         | 
| 33 | 
            -
            #*.tmproj
         | 
| 34 | 
            -
            #tmtags
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            # For emacs:
         | 
| 37 | 
            -
            #*~
         | 
| 38 | 
            -
            #\#*
         | 
| 39 | 
            -
            #.\#*
         | 
| 40 | 
            -
             | 
| 41 | 
            -
            # For vim:
         | 
| 42 | 
            -
            #*.swp
         | 
| 43 | 
            -
             | 
| 44 | 
            -
            # For redcar:
         | 
| 45 | 
            -
            #.redcar
         | 
| 46 | 
            -
             | 
| 47 | 
            -
            # For rubinius:
         | 
| 48 | 
            -
            #*.rbc
         | 
| 49 | 
            -
             | 
| 50 | 
            -
            # Ignore gems built in this dir
         | 
| 51 1 | 
             
            *.gem
         | 
| 2 | 
            +
            *.rbc
         | 
| 3 | 
            +
            .bundle
         | 
| 4 | 
            +
            .config
         | 
| 5 | 
            +
            .rvmrc
         | 
| 6 | 
            +
            .yardoc
         | 
| 7 | 
            +
            /Gemfile.lock
         | 
| 8 | 
            +
            _yardoc
         | 
| 9 | 
            +
            /coverage
         | 
| 10 | 
            +
            /doc/
         | 
| 11 | 
            +
            /pkg
         | 
| 12 | 
            +
            /spec/reports
         | 
| 13 | 
            +
            /Berksfile*
         | 
| 14 | 
            +
            tmp
         | 
| 15 | 
            +
            *~
         | 
| 16 | 
            +
            *.tar*
         | 
| 17 | 
            +
            \#*
         | 
| 18 | 
            +
            .DS_Store
         | 
| 19 | 
            +
            /spec/knife.rb
         | 
| 20 | 
            +
            /spec/*.pem
         | 
| 21 | 
            +
            /features/config.yml
         | 
| 22 | 
            +
            *.sw[op]
         | 
| 23 | 
            +
            \.\#*
         | 
| 24 | 
            +
            rerun.txt
         | 
| 25 | 
            +
            .rspec
         | 
| 26 | 
            +
            .kitchen
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1,81 @@ | |
| 1 | 
            +
            Powify
         | 
| 2 | 
            +
            ======
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            Powify is a management tool for [Pow](http://pow.cx/) by 37 signals. It allows you to easily install, update, and manage pow and pow applications seamlessly. To get started, read the installation section below.
         | 
| 5 | 
            +
             | 
| 6 | 
            +
             | 
| 7 | 
            +
            Installation
         | 
| 8 | 
            +
            ------------
         | 
| 9 | 
            +
            Install powify using the `gem` command:
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                gem install powify
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            Important Notes
         | 
| 14 | 
            +
            ---------------
         | 
| 15 | 
            +
            Powify assumes that your current working directory has the same basename as Pow app. For example, if my site was in:
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                /Users/sethvargo/Development/my_site
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            Powify would expect the name of the Pow app to also be `my_site` (the name of the symlink). This is the default behavior if you just use the command `powify create`. However, it's feasible that you would want a different name that the folder. If this is the case, you'll always need to specify the name of the application like this:
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                powify restart foo
         | 
| 22 | 
            +
                powify destroy foo
         | 
| 23 | 
            +
                powify move foo new_foo
         | 
| 24 | 
            +
             | 
| 25 | 
            +
             | 
| 26 | 
            +
            ### FAQ
         | 
| 27 | 
            +
            Q: But Seth, why don't you just search the `~/.pow` directory and grab the symlink that points to the current directory?
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            A: Because it's inefficient and it could cause a problem if the same Pow apps are symlinked multiple times under different names, Powify could accidentally perform an operation on the wrong one.
         | 
| 30 | 
            +
             | 
| 31 | 
            +
             | 
| 32 | 
            +
            Q: Why don't you just add a hidden file to the project directory when someone creates the app, then you'll know what the symlinked is named.
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            A: What happens when the same app is symlinked multiple times under a different name? I also hate when applications create files randomly on my hard drive.
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            Usage
         | 
| 37 | 
            +
            -----
         | 
| 38 | 
            +
            ```bash
         | 
| 39 | 
            +
            SERVER COMMANDS
         | 
| 40 | 
            +
              powify server install            install pow server
         | 
| 41 | 
            +
              powify server reinstall          reinstall pow server
         | 
| 42 | 
            +
              powify server update             update pow server
         | 
| 43 | 
            +
              powify server uninstall          uninstall pow server
         | 
| 44 | 
            +
              powify server list               list all pow apps
         | 
| 45 | 
            +
              powify server start              start the pow server
         | 
| 46 | 
            +
              powify server stop               stop the pow server
         | 
| 47 | 
            +
              powify server restart            restart the pow server
         | 
| 48 | 
            +
              powify server host               adds all pow apps to /etc/hosts file
         | 
| 49 | 
            +
              powify server unhost             removes all pow apps from /etc/hosts file
         | 
| 50 | 
            +
              powify server status             print the current server status
         | 
| 51 | 
            +
              powify server config             print the current server configuration
         | 
| 52 | 
            +
              powify server logs               tails the pow server logs
         | 
| 53 | 
            +
             | 
| 54 | 
            +
            UTILS COMMANDS
         | 
| 55 | 
            +
              powify utils install             install powify.dev server management tool
         | 
| 56 | 
            +
              powify utils reinstall           reinstall powify.dev server management tool
         | 
| 57 | 
            +
              powify utils uninstall           uninstall powify.dev server management tool
         | 
| 58 | 
            +
             | 
| 59 | 
            +
            APP COMMANDS
         | 
| 60 | 
            +
              powify create [NAME]             creates a pow app from the current directory
         | 
| 61 | 
            +
              powify destroy [NAME]            destroys the pow app linked to the current directory
         | 
| 62 | 
            +
              powify restart [NAME]            restarts the pow app linked to the current directory
         | 
| 63 | 
            +
              powify always_restart [NAME]     reload the pow app after each request
         | 
| 64 | 
            +
              powify always_restart_off [NAME] do not reload the pow app after each request
         | 
| 65 | 
            +
              powify rename [NAME]             rename the pow app to [NAME]
         | 
| 66 | 
            +
              powify rename [OLD] [NEW]        rename the pow app [OLD] to [NEW]
         | 
| 67 | 
            +
              powify environment [ENV]         run the this pow app in a different environment (aliased `env`)
         | 
| 68 | 
            +
              powify browse [NAME]             opens and navigates the default browser to this app
         | 
| 69 | 
            +
              powify logs [NAME]               tail the application logs
         | 
| 70 | 
            +
            ```
         | 
| 71 | 
            +
             | 
| 72 | 
            +
            Important Notes
         | 
| 73 | 
            +
            ---------------
         | 
| 74 | 
            +
            The server commands for `start` and `stop` **only** stop the Pow process. They do not modify the existing firewall rules. If you need to disable the firewall rules, please `uninstall` and `install` to re-activate.
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            Contribution
         | 
| 77 | 
            +
            ------------
         | 
| 78 | 
            +
            - 9/2 [@lindblom](https://github.com/lindblom) - author of `host` and `unhost`
         | 
| 79 | 
            +
            - 10/29 [@warwickp](https://github.com/warwickp) - wrote `always_restart_off`
         | 
| 80 | 
            +
             | 
| 81 | 
            +
            If you would like to contribute, fork and send me a pull request.
         | 
    
        data/lib/powify/app.rb
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            module Powify
         | 
| 2 2 | 
             
              class App
         | 
| 3 3 | 
             
                extend Powify
         | 
| 4 | 
            -
                AVAILABLE_METHODS = %w(create link new destroy unlink remove restart always_restart always_restart_off browse open rename environment env logs | 
| 4 | 
            +
                AVAILABLE_METHODS = %w(create link new destroy unlink remove restart always_restart always_restart_off browse open rename environment env logs)
         | 
| 5 5 |  | 
| 6 6 | 
             
                class << self
         | 
| 7 7 | 
             
                  def run(args)
         | 
| @@ -72,7 +72,7 @@ module Powify | |
| 72 72 | 
             
                      $stdout.puts "Type `powify server list` for a full list of applications."
         | 
| 73 73 | 
             
                    end
         | 
| 74 74 | 
             
                  end
         | 
| 75 | 
            -
             | 
| 75 | 
            +
             | 
| 76 76 | 
             
                  # powify always_restart_off
         | 
| 77 77 | 
             
                  # powify always_restart_off foo
         | 
| 78 78 | 
             
                  def always_restart_off(args = [])
         | 
| @@ -123,8 +123,16 @@ module Powify | |
| 123 123 | 
             
                    return if args.empty?
         | 
| 124 124 | 
             
                    app_name, env = File.basename(current_path), args[0].strip.to_s.downcase
         | 
| 125 125 | 
             
                    app_name, env = args[0].strip.to_s.downcase, args[1].strip.to_s.downcase if args.size > 1
         | 
| 126 | 
            -
                     | 
| 127 | 
            -
                     | 
| 126 | 
            +
                    env_file = "#{POWPATH}/#{app_name}/.powenv"
         | 
| 127 | 
            +
                    if File.exists?(env_file)
         | 
| 128 | 
            +
                      contents = File.readlines(env_file).reject do |line|
         | 
| 129 | 
            +
                        # Ignore empty lines and lines that define the environment.
         | 
| 130 | 
            +
                        line.strip.empty? || line.match(/^export RAILS_ENV=(.+)/)
         | 
| 131 | 
            +
                      end.compact << "export RAILS_ENV=#{env}"
         | 
| 132 | 
            +
                      File.open(env_file, "w") { |f| f.puts contents }
         | 
| 133 | 
            +
                    else
         | 
| 134 | 
            +
                      %x{echo export RAILS_ENV=#{env} > #{env_file}}
         | 
| 135 | 
            +
                    end
         | 
| 128 136 | 
             
                    $stdout.puts "Successfully changed environment to #{env}."
         | 
| 129 137 | 
             
                    restart [app_name]
         | 
| 130 138 | 
             
                  end
         | 
| @@ -139,4 +147,4 @@ module Powify | |
| 139 147 | 
             
                  end
         | 
| 140 148 | 
             
                end
         | 
| 141 149 | 
             
              end
         | 
| 142 | 
            -
            end
         | 
| 150 | 
            +
            end
         | 
    
        data/lib/powify/client.rb
    CHANGED
    
    | @@ -4,7 +4,7 @@ module Powify | |
| 4 4 | 
             
                class << self
         | 
| 5 5 | 
             
                  def run(args = [])
         | 
| 6 6 | 
             
                    begin
         | 
| 7 | 
            -
                      if  | 
| 7 | 
            +
                      if (%w(version help) & args).empty?
         | 
| 8 8 | 
             
                        return Powify::Server.run(args[1..-1]) if args[0].strip == 'server'
         | 
| 9 9 | 
             
                        return Powify::Utils.run(args[1..-1]) if args[0].strip == 'utils'
         | 
| 10 10 | 
             
                        return Powify::App.run(args)
         | 
| @@ -13,7 +13,11 @@ module Powify | |
| 13 13 | 
             
                      $stdout.puts e
         | 
| 14 14 | 
             
                    end
         | 
| 15 15 |  | 
| 16 | 
            -
                    help
         | 
| 16 | 
            +
                    self.send (%w(version help) & args).first.to_sym
         | 
| 17 | 
            +
                  end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                  def version
         | 
| 20 | 
            +
                    $stdout.puts Powify::VERSION
         | 
| 17 21 | 
             
                  end
         | 
| 18 22 |  | 
| 19 23 | 
             
                  def help
         | 
| @@ -53,4 +57,4 @@ module Powify | |
| 53 57 | 
             
                  end
         | 
| 54 58 | 
             
                end
         | 
| 55 59 | 
             
              end
         | 
| 56 | 
            -
            end
         | 
| 60 | 
            +
            end
         | 
    
        data/lib/powify/core.rb
    CHANGED
    
    | @@ -2,6 +2,7 @@ require 'powify/app' | |
| 2 2 | 
             
            require 'powify/client'
         | 
| 3 3 | 
             
            require 'powify/server'
         | 
| 4 4 | 
             
            require 'powify/utils'
         | 
| 5 | 
            +
            require 'powify/version'
         | 
| 5 6 | 
             
            require 'fileutils'
         | 
| 6 7 |  | 
| 7 8 | 
             
            module Powify
         | 
| @@ -27,4 +28,4 @@ module Powify | |
| 27 28 | 
             
                result = %x{curl localhost/config.json --silent --header host:pow}
         | 
| 28 29 | 
             
                JSON.parse(result)
         | 
| 29 30 | 
             
              end
         | 
| 30 | 
            -
            end
         | 
| 31 | 
            +
            end
         | 
    
        data/lib/powify/server.rb
    CHANGED
    
    | @@ -5,7 +5,7 @@ require 'json' | |
| 5 5 | 
             
            module Powify
         | 
| 6 6 | 
             
              class Server
         | 
| 7 7 | 
             
                extend Powify
         | 
| 8 | 
            -
                AVAILABLE_METHODS = %w(install reinstall update uninstall remove start stop restart host unhost status config list logs | 
| 8 | 
            +
                AVAILABLE_METHODS = %w(install reinstall update uninstall remove start stop restart host unhost status config list logs)
         | 
| 9 9 |  | 
| 10 10 | 
             
                class << self
         | 
| 11 11 | 
             
                  def run(args = [])
         | 
| @@ -34,21 +34,22 @@ module Powify | |
| 34 34 | 
             
                  # Start the POW server (command taken from 37 Signals installation script)
         | 
| 35 35 | 
             
                  def start
         | 
| 36 36 | 
             
                    $stdout.puts "Starting the pow server..."
         | 
| 37 | 
            -
                    %x{launchctl load  | 
| 37 | 
            +
                    %x{sudo launchctl load -Fw /Library/LaunchDaemons/cx.pow.firewall.plist 2>/dev/null}
         | 
| 38 | 
            +
                    %x{launchctl load -Fw "$HOME/Library/LaunchAgents/cx.pow.powd.plist" 2>/dev/null}
         | 
| 38 39 | 
             
                    $stdout.puts "Done!"
         | 
| 39 40 | 
             
                  end
         | 
| 40 41 |  | 
| 41 42 | 
             
                  # Stop the POW server (command taken from 37 Signals installation script)
         | 
| 42 43 | 
             
                  def stop
         | 
| 43 44 | 
             
                    $stdout.puts "Stopping the pow server..."
         | 
| 44 | 
            -
                    %x{launchctl unload "$HOME/Library/LaunchAgents/cx.pow.powd.plist"}
         | 
| 45 | 
            +
                    %x{launchctl unload "$HOME/Library/LaunchAgents/cx.pow.powd.plist" 2>/dev/null}
         | 
| 46 | 
            +
                    %x{sudo launchctl unload "/Library/LaunchDaemons/cx.pow.firewall.plist" 2>/dev/null}
         | 
| 45 47 | 
             
                    $stdout.puts "Done!"
         | 
| 46 48 | 
             
                  end
         | 
| 47 49 |  | 
| 48 50 | 
             
                  # Restart the POW server
         | 
| 49 51 | 
             
                  def restart
         | 
| 50 | 
            -
                    stop
         | 
| 51 | 
            -
                    start
         | 
| 52 | 
            +
                    stop && start
         | 
| 52 53 | 
             
                  end
         | 
| 53 54 |  | 
| 54 55 | 
             
                  # Add POW domains to the hosts file
         | 
| @@ -118,10 +119,24 @@ module Powify | |
| 118 119 | 
             
                    $stdout.puts "\n"
         | 
| 119 120 | 
             
                  end
         | 
| 120 121 |  | 
| 122 | 
            +
                  def _extract_forward_info(port)
         | 
| 123 | 
            +
                    res_types = { 'p' => :pid, 'c' => :command }
         | 
| 124 | 
            +
                    result = %x{lsof -iTCP:#{port} -Fpc}
         | 
| 125 | 
            +
                    Hash[ result.split("\n").map { |line| [ res_types[line[0]], line[1..-1] ] } ]
         | 
| 126 | 
            +
                  end
         | 
| 121 127 | 
             
                  # List all active POW applications currently on the server
         | 
| 122 128 | 
             
                  def list
         | 
| 123 129 | 
             
                    $stdout.puts "The following POW applications are available:\n\n"
         | 
| 124 | 
            -
                    Dir["#{POWPATH}/*"].each  | 
| 130 | 
            +
                    Dir["#{POWPATH}/*"].each do |a|
         | 
| 131 | 
            +
                      if File.symlink?(a)
         | 
| 132 | 
            +
                        $stdout.puts "  #{File.basename(a)} -> #{File.readlink(a)}"
         | 
| 133 | 
            +
                      else
         | 
| 134 | 
            +
                        port = File.open(a) { |f| f.readline.to_i }
         | 
| 135 | 
            +
                        info = _extract_forward_info(port)
         | 
| 136 | 
            +
                        $stdout.puts "  #{File.basename(a)} -> forwarding to :#{port} for" +
         | 
| 137 | 
            +
                                     " #{info.fetch(:command, 'Unknown')}[#{info.fetch(:pid, '???')}]"
         | 
| 138 | 
            +
                      end
         | 
| 139 | 
            +
                    end
         | 
| 125 140 | 
             
                    $stdout.puts "\nRun `powify open [APP_NAME]` to browse an app"
         | 
| 126 141 | 
             
                  end
         | 
| 127 142 |  | 
| @@ -131,4 +146,4 @@ module Powify | |
| 131 146 | 
             
                  end
         | 
| 132 147 | 
             
                end
         | 
| 133 148 | 
             
              end
         | 
| 134 | 
            -
            end
         | 
| 149 | 
            +
            end
         | 
    
        data/lib/powify/utils.rb
    CHANGED
    
    | @@ -17,7 +17,7 @@ module Powify | |
| 17 17 | 
             
                  def install
         | 
| 18 18 | 
             
                    uninstall
         | 
| 19 19 | 
             
                    $stdout.puts "Cloning powify.dev from github and bundling powify.dev..."
         | 
| 20 | 
            -
                    %x{git clone -q  | 
| 20 | 
            +
                    %x{git clone -q https://github.com/sethvargo/powify.git powify && cd powify && bundle install --deployment && cd .. && mv powify "#{config['hostRoot']}"}
         | 
| 21 21 | 
             
                    $stdout.puts "Done!"
         | 
| 22 22 | 
             
                  end
         | 
| 23 23 | 
             
                  alias_method :reinstall, :install
         | 
| @@ -30,4 +30,4 @@ module Powify | |
| 30 30 | 
             
                  alias_method :remove, :uninstall
         | 
| 31 31 | 
             
                end
         | 
| 32 32 | 
             
              end
         | 
| 33 | 
            -
            end
         | 
| 33 | 
            +
            end
         | 
    
        data/powify.gemspec
    CHANGED
    
    | @@ -1,21 +1,21 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            -
             | 
| 2 | 
            +
            lib = File.expand_path('../lib', __FILE__)
         | 
| 3 | 
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 4 | 
            +
            require 'powify/version'
         | 
| 3 5 |  | 
| 4 6 | 
             
            Gem::Specification.new do |s|
         | 
| 5 7 | 
             
              s.name        = 'powify'
         | 
| 6 | 
            -
              s.version     =  | 
| 8 | 
            +
              s.version     = Powify::VERSION
         | 
| 7 9 | 
             
              s.author    	= 'Seth Vargo'
         | 
| 8 10 | 
             
              s.email       = 'sethvargo@gmail.com'
         | 
| 9 11 | 
             
              s.homepage    = 'https://github.com/sethvargo/powify'
         | 
| 10 12 | 
             
              s.summary     = %q{Powify is an easy-to-use wrapper for 37 signal's pow}
         | 
| 11 13 | 
             
              s.description = %q{Powify provides an easy wrapper for use with 37 signal's pow. Use this gem to easily install and update pow server. Easily create, destroy, and manage pow apps.}
         | 
| 12 14 |  | 
| 13 | 
            -
              s. | 
| 15 | 
            +
              s.required_ruby_version = '>= 1.9'
         | 
| 14 16 |  | 
| 15 17 | 
             
              s.files         = `git ls-files`.split("\n")
         | 
| 16 18 | 
             
              s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
         | 
| 17 19 | 
             
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 18 | 
            -
              s.require_paths = [ | 
| 19 | 
            -
             | 
| 20 | 
            -
              s.add_runtime_dependency 'json'
         | 
| 21 | 
            -
            end
         | 
| 20 | 
            +
              s.require_paths = ['lib']
         | 
| 21 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,27 +1,15 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: powify
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 0.9.1
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Seth Vargo
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 13 | 
            -
            dependencies:
         | 
| 14 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 15 | 
            -
              name: json
         | 
| 16 | 
            -
              requirement: &70302583337720 !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: *70302583337720
         | 
| 11 | 
            +
            date: 2014-06-16 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies: []
         | 
| 25 13 | 
             
            description: Powify provides an easy wrapper for use with 37 signal's pow. Use this
         | 
| 26 14 | 
             
              gem to easily install and update pow server. Easily create, destroy, and manage
         | 
| 27 15 | 
             
              pow apps.
         | 
| @@ -31,12 +19,10 @@ executables: | |
| 31 19 | 
             
            extensions: []
         | 
| 32 20 | 
             
            extra_rdoc_files: []
         | 
| 33 21 | 
             
            files:
         | 
| 34 | 
            -
            - . | 
| 35 | 
            -
            - .gitignore
         | 
| 22 | 
            +
            - ".gitignore"
         | 
| 36 23 | 
             
            - Gemfile
         | 
| 37 | 
            -
            - Gemfile.lock
         | 
| 38 24 | 
             
            - LICENSE
         | 
| 39 | 
            -
            - README. | 
| 25 | 
            +
            - README.md
         | 
| 40 26 | 
             
            - Rakefile
         | 
| 41 27 | 
             
            - bin/powify
         | 
| 42 28 | 
             
            - lib/powify.rb
         | 
| @@ -45,29 +31,30 @@ files: | |
| 45 31 | 
             
            - lib/powify/core.rb
         | 
| 46 32 | 
             
            - lib/powify/server.rb
         | 
| 47 33 | 
             
            - lib/powify/utils.rb
         | 
| 34 | 
            +
            - lib/powify/version.rb
         | 
| 48 35 | 
             
            - powify.gemspec
         | 
| 49 36 | 
             
            homepage: https://github.com/sethvargo/powify
         | 
| 50 37 | 
             
            licenses: []
         | 
| 38 | 
            +
            metadata: {}
         | 
| 51 39 | 
             
            post_install_message: 
         | 
| 52 40 | 
             
            rdoc_options: []
         | 
| 53 41 | 
             
            require_paths:
         | 
| 54 42 | 
             
            - lib
         | 
| 55 43 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 56 | 
            -
              none: false
         | 
| 57 44 | 
             
              requirements:
         | 
| 58 | 
            -
              - -  | 
| 45 | 
            +
              - - ">="
         | 
| 59 46 | 
             
                - !ruby/object:Gem::Version
         | 
| 60 | 
            -
                  version: ' | 
| 47 | 
            +
                  version: '1.9'
         | 
| 61 48 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 62 | 
            -
              none: false
         | 
| 63 49 | 
             
              requirements:
         | 
| 64 | 
            -
              - -  | 
| 50 | 
            +
              - - ">="
         | 
| 65 51 | 
             
                - !ruby/object:Gem::Version
         | 
| 66 52 | 
             
                  version: '0'
         | 
| 67 53 | 
             
            requirements: []
         | 
| 68 | 
            -
            rubyforge_project:  | 
| 69 | 
            -
            rubygems_version:  | 
| 54 | 
            +
            rubyforge_project: 
         | 
| 55 | 
            +
            rubygems_version: 2.2.2
         | 
| 70 56 | 
             
            signing_key: 
         | 
| 71 | 
            -
            specification_version:  | 
| 57 | 
            +
            specification_version: 4
         | 
| 72 58 | 
             
            summary: Powify is an easy-to-use wrapper for 37 signal's pow
         | 
| 73 59 | 
             
            test_files: []
         | 
| 60 | 
            +
            has_rdoc: 
         | 
    
        data/.document
    DELETED
    
    
    
        data/Gemfile.lock
    DELETED
    
    
    
        data/README.markdown
    DELETED
    
    | @@ -1,240 +0,0 @@ | |
| 1 | 
            -
            Powify
         | 
| 2 | 
            -
            ======
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            Powify is a management tool for [Pow](http://pow.cx/) by 37 signals. It allows you to easily install, update, and manage pow and pow applications seamlessly. To get started, read the installation section below.
         | 
| 5 | 
            -
             | 
| 6 | 
            -
             | 
| 7 | 
            -
            Installation
         | 
| 8 | 
            -
            ------------
         | 
| 9 | 
            -
            Install powify using the `gem` command:
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                gem install powify
         | 
| 12 | 
            -
             | 
| 13 | 
            -
            Important Notes
         | 
| 14 | 
            -
            ---------------
         | 
| 15 | 
            -
            Powify assumes that your current working directory has the same basename as Pow app. For example, if my site was in:
         | 
| 16 | 
            -
             | 
| 17 | 
            -
                /Users/sethvargo/Development/my_site
         | 
| 18 | 
            -
             | 
| 19 | 
            -
            Powify would expect the name of the Pow app to also be `my_site` (the name of the symlink). This is the default behavior if you just use the command `powify create`. However, it's feasible that you would want a different name that the folder. If this is the case, you'll always need to specify the name of the application like this:
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                powify restart foo
         | 
| 22 | 
            -
                powify destroy foo
         | 
| 23 | 
            -
                powify move foo new_foo
         | 
| 24 | 
            -
             | 
| 25 | 
            -
             | 
| 26 | 
            -
            ### FAQ
         | 
| 27 | 
            -
            Q: But Seth, why don't you just search the `~/.pow` directory and grab the symlink that points to the current directory?
         | 
| 28 | 
            -
             | 
| 29 | 
            -
            A: Because it's inefficient and it could cause a problem if the same Pow apps are symlinked multiple times under different names, Powify could accidentally perform an operation on the wrong one.
         | 
| 30 | 
            -
             | 
| 31 | 
            -
             | 
| 32 | 
            -
            Q: Why don't you just add a hidden file to the project directory when someone creates the app, then you'll know what the symlinked is named.
         | 
| 33 | 
            -
             | 
| 34 | 
            -
            A: What happens when the same app is symlinked multiple times under a different name? I also hate when applications create files randomly on my hard drive.
         | 
| 35 | 
            -
             | 
| 36 | 
            -
            Usage
         | 
| 37 | 
            -
            -----
         | 
| 38 | 
            -
             | 
| 39 | 
            -
            ### Server Commands
         | 
| 40 | 
            -
            Server Commands can be run from anywhere. These are commands that apply to the Pow Server, not an individual application itself.
         | 
| 41 | 
            -
             | 
| 42 | 
            -
                $ powify server install
         | 
| 43 | 
            -
                => install pow server
         | 
| 44 | 
            -
             | 
| 45 | 
            -
             
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                $ powify server reinstall
         | 
| 48 | 
            -
                => reinstall pow server
         | 
| 49 | 
            -
             | 
| 50 | 
            -
             
         | 
| 51 | 
            -
             | 
| 52 | 
            -
                $ powify server update
         | 
| 53 | 
            -
                => update pow server
         | 
| 54 | 
            -
             | 
| 55 | 
            -
             
         | 
| 56 | 
            -
             | 
| 57 | 
            -
                $ powify server uninstall
         | 
| 58 | 
            -
                => uninstall pow server
         | 
| 59 | 
            -
             | 
| 60 | 
            -
             
         | 
| 61 | 
            -
             | 
| 62 | 
            -
                $ powify server list
         | 
| 63 | 
            -
                => list all apps on this pow server
         | 
| 64 | 
            -
             | 
| 65 | 
            -
             
         | 
| 66 | 
            -
             | 
| 67 | 
            -
                $ powify server start
         | 
| 68 | 
            -
                => start the pow server
         | 
| 69 | 
            -
             | 
| 70 | 
            -
             
         | 
| 71 | 
            -
             | 
| 72 | 
            -
                $ powify server stop
         | 
| 73 | 
            -
                => stop the pow server
         | 
| 74 | 
            -
             | 
| 75 | 
            -
             
         | 
| 76 | 
            -
             | 
| 77 | 
            -
                $ powify server restart
         | 
| 78 | 
            -
                => restart the pow server
         | 
| 79 | 
            -
             | 
| 80 | 
            -
             
         | 
| 81 | 
            -
             | 
| 82 | 
            -
                $ powify server host
         | 
| 83 | 
            -
                => copies all pow apps to /etc/hosts - this is used for offline development when you aren't connected to a network
         | 
| 84 | 
            -
             | 
| 85 | 
            -
            `host` was written by [Christopher Lindblom](https://github.com/lindblom)
         | 
| 86 | 
            -
             | 
| 87 | 
            -
                $ powify server unhost
         | 
| 88 | 
            -
                => removes all pow apps to /etc/hosts
         | 
| 89 | 
            -
             | 
| 90 | 
            -
            `unhost` was written by [Christopher Lindblom](https://github.com/lindblom)
         | 
| 91 | 
            -
             | 
| 92 | 
            -
                $ powify server status
         | 
| 93 | 
            -
                => print the current status of the server
         | 
| 94 | 
            -
             | 
| 95 | 
            -
             
         | 
| 96 | 
            -
             | 
| 97 | 
            -
                $ powify server config
         | 
| 98 | 
            -
                => print the current configuration of the server
         | 
| 99 | 
            -
             | 
| 100 | 
            -
             
         | 
| 101 | 
            -
             | 
| 102 | 
            -
                $ powify server logs
         | 
| 103 | 
            -
                => tail the pow server logs
         | 
| 104 | 
            -
             | 
| 105 | 
            -
            ### Utils Commands
         | 
| 106 | 
            -
            Util commands were introduced after I created [powify.dev](https://github.com/sethvargo/powify.dev). They make installing `powify.dev` really easy!
         | 
| 107 | 
            -
             | 
| 108 | 
            -
                $ powify utils install
         | 
| 109 | 
            -
                => install powify.dev
         | 
| 110 | 
            -
             | 
| 111 | 
            -
             
         | 
| 112 | 
            -
             | 
| 113 | 
            -
                $ powify utils reinstall
         | 
| 114 | 
            -
                => reinstall powify.dev
         | 
| 115 | 
            -
             | 
| 116 | 
            -
             
         | 
| 117 | 
            -
             | 
| 118 | 
            -
                $ powify utils uninstall
         | 
| 119 | 
            -
                => uninstall powify.dev
         | 
| 120 | 
            -
             | 
| 121 | 
            -
             | 
| 122 | 
            -
            ### App Commands
         | 
| 123 | 
            -
            App commands should (but don't necessarily have to be) run from the application directory.
         | 
| 124 | 
            -
             | 
| 125 | 
            -
                $ powify create
         | 
| 126 | 
            -
                => create a pow app with the same name as the current directory
         | 
| 127 | 
            -
             | 
| 128 | 
            -
             
         | 
| 129 | 
            -
             | 
| 130 | 
            -
                $ powify create foo
         | 
| 131 | 
            -
                => create a pow app named `foo` served from the current directory
         | 
| 132 | 
            -
             | 
| 133 | 
            -
             
         | 
| 134 | 
            -
             | 
| 135 | 
            -
                $ powify destroy
         | 
| 136 | 
            -
                => destroy the pow app served from the current directory
         | 
| 137 | 
            -
             | 
| 138 | 
            -
             
         | 
| 139 | 
            -
             | 
| 140 | 
            -
                $ powify destroy foo
         | 
| 141 | 
            -
                => destroy the pow app named `foo`
         | 
| 142 | 
            -
             | 
| 143 | 
            -
             
         | 
| 144 | 
            -
             | 
| 145 | 
            -
                $ powify restart
         | 
| 146 | 
            -
                => restart the app served from the current directory
         | 
| 147 | 
            -
             | 
| 148 | 
            -
             
         | 
| 149 | 
            -
             | 
| 150 | 
            -
                $ powify always_restart
         | 
| 151 | 
            -
                => tell pow to always reload the framework on each request
         | 
| 152 | 
            -
             | 
| 153 | 
            -
             
         | 
| 154 | 
            -
             | 
| 155 | 
            -
                $ powify always_restart foo
         | 
| 156 | 
            -
                => tell pow to always reload the framework on each request to the pow app named `foo`
         | 
| 157 | 
            -
             | 
| 158 | 
            -
             
         | 
| 159 | 
            -
             | 
| 160 | 
            -
                $ powify always_restart_off
         | 
| 161 | 
            -
                => tell pow to not reload the framework on each request
         | 
| 162 | 
            -
             | 
| 163 | 
            -
             
         | 
| 164 | 
            -
             | 
| 165 | 
            -
                $ powify always_restart_off foo
         | 
| 166 | 
            -
                => tell pow to not reload the framework on each request to the pow app named `foo`
         | 
| 167 | 
            -
             | 
| 168 | 
            -
             
         | 
| 169 | 
            -
             | 
| 170 | 
            -
                $ powify restart foo
         | 
| 171 | 
            -
                => restart the pow app named `foo`
         | 
| 172 | 
            -
             | 
| 173 | 
            -
             
         | 
| 174 | 
            -
             | 
| 175 | 
            -
                $ powify browse
         | 
| 176 | 
            -
                => open the default browser and navigate to this app
         | 
| 177 | 
            -
             | 
| 178 | 
            -
             
         | 
| 179 | 
            -
             | 
| 180 | 
            -
                $ powify browse foo
         | 
| 181 | 
            -
                => open the default browser and navigate to the app named `foo`
         | 
| 182 | 
            -
             | 
| 183 | 
            -
             
         | 
| 184 | 
            -
             | 
| 185 | 
            -
                $ powify browse foo test
         | 
| 186 | 
            -
                => open the default browser and navigate to the app named `foo` resolved on test (http://foo.test)
         | 
| 187 | 
            -
             | 
| 188 | 
            -
             
         | 
| 189 | 
            -
             | 
| 190 | 
            -
                $ powify logs
         | 
| 191 | 
            -
                => tail the app logs for the app served from this directory
         | 
| 192 | 
            -
                
         | 
| 193 | 
            -
             
         | 
| 194 | 
            -
             | 
| 195 | 
            -
                $ powify logs foo
         | 
| 196 | 
            -
                => tail the app logs for the app named `foo`
         | 
| 197 | 
            -
             | 
| 198 | 
            -
             
         | 
| 199 | 
            -
             | 
| 200 | 
            -
                $ powify rename foo
         | 
| 201 | 
            -
                => rename the pow app in the current directory to `foo`
         | 
| 202 | 
            -
             | 
| 203 | 
            -
             
         | 
| 204 | 
            -
             | 
| 205 | 
            -
                $ powify rename foo bar
         | 
| 206 | 
            -
                => rename the pow app named `foo` to `bar`
         | 
| 207 | 
            -
             | 
| 208 | 
            -
             
         | 
| 209 | 
            -
             | 
| 210 | 
            -
                $ powify environment production
         | 
| 211 | 
            -
                => run the current pow app in production
         | 
| 212 | 
            -
             | 
| 213 | 
            -
             
         | 
| 214 | 
            -
             | 
| 215 | 
            -
                $ powify env staging
         | 
| 216 | 
            -
                => run the current pow app in staging
         | 
| 217 | 
            -
             | 
| 218 | 
            -
             
         | 
| 219 | 
            -
             | 
| 220 | 
            -
                $ powify help
         | 
| 221 | 
            -
                => list pow commands
         | 
| 222 | 
            -
             | 
| 223 | 
            -
             | 
| 224 | 
            -
            Contribution
         | 
| 225 | 
            -
            ------------
         | 
| 226 | 
            -
            - 9/2 [@lindblom](https://github.com/lindblom) - author of `host` and `unhost`
         | 
| 227 | 
            -
            - 10/29 [@warwickp](https://github.com/warwickp) - wrote `always_restart_off`
         | 
| 228 | 
            -
             | 
| 229 | 
            -
            If you would like to contribute, fork and send me a pull request.
         | 
| 230 | 
            -
             | 
| 231 | 
            -
             | 
| 232 | 
            -
            License
         | 
| 233 | 
            -
            -------
         | 
| 234 | 
            -
            Copyright (c) 2012 Seth Vargo
         | 
| 235 | 
            -
             | 
| 236 | 
            -
            Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
         | 
| 237 | 
            -
             | 
| 238 | 
            -
            The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
         | 
| 239 | 
            -
             | 
| 240 | 
            -
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         |