powify 0.8.5 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- 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.
|