negroku 0.0.2 → 0.0.3
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.
- data/lib/negroku/cli.rb +20 -53
- data/lib/negroku/deploy.rb +4 -0
- data/lib/negroku/tasks/unicorn.rb +2 -1
- data/lib/negroku/templates/deploy.rb.erb +5 -3
- data/lib/negroku/version.rb +1 -1
- metadata +2 -2
data/lib/negroku/cli.rb
CHANGED
@@ -20,13 +20,12 @@ class App < Thor
|
|
20
20
|
# Test for config
|
21
21
|
if config.empty?
|
22
22
|
say "[WARNING]".foreground(:red)
|
23
|
-
say "It's recommended that you add some
|
24
|
-
say "
|
25
|
-
say "negroku repo add git@github.com:yourusername.git\n".foreground(:yellow)
|
26
|
-
say "Also you can add your deployment servers urls using:\n"
|
23
|
+
say "It's recommended that you add some custom settings to negroku before you create your app deployment\n\n"
|
24
|
+
say "You can add your deployment servers urls using:\n"
|
27
25
|
say "negroku target add my.deployment.com".foreground(:yellow)
|
28
26
|
say "negroku target add 104.284.3.1\n".foreground(:yellow)
|
29
|
-
unless
|
27
|
+
unless agree "You have not added custom settings! Do you want to continue? [y/n]", true
|
28
|
+
say "Goodbye"
|
30
29
|
exit
|
31
30
|
end
|
32
31
|
end
|
@@ -53,33 +52,18 @@ class App < Thor
|
|
53
52
|
|
54
53
|
# find local remote from git repo
|
55
54
|
if File.directory?(".git")
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# adds the repos in the config file if there is one
|
65
|
-
if config[:repo]
|
66
|
-
config[:repo].each do |val|
|
67
|
-
repo_url = "#{val}/#{data[:application_name]}.git"
|
68
|
-
# skip if the repo url is the same as the local one
|
69
|
-
unless repo_url == local_repo
|
70
|
-
menu.choice(repo_url) do |command|
|
71
|
-
say("Using #{command}/#{data[:application_name]}.git")
|
72
|
-
data[:repo] = command;
|
73
|
-
end
|
55
|
+
local_repos = %x(git remote -v | awk '{print $2}' | uniq).split("\n")
|
56
|
+
local_repos.each do |url|
|
57
|
+
menu.choice(url) do |command|
|
58
|
+
say("Using #{command}")
|
59
|
+
data[:repo] = command;
|
74
60
|
end
|
75
61
|
end
|
76
|
-
else
|
77
|
-
say "[INFO] There are no repos in the default settings".color(:yellow)
|
78
62
|
end
|
79
63
|
|
80
64
|
# add other repo choice
|
81
65
|
menu.choice(:other) {
|
82
|
-
data[:repo] = ask "Type the url and username e.g. git@github.com:username: ".bright()
|
66
|
+
data[:repo] = ask "Type the url and username e.g. git@github.com:username/app-name.git: ".bright()
|
83
67
|
}
|
84
68
|
end
|
85
69
|
|
@@ -92,7 +76,7 @@ class App < Thor
|
|
92
76
|
menu.select_by = :index
|
93
77
|
|
94
78
|
# Adds the targets in the config file if there is one
|
95
|
-
if config[:
|
79
|
+
if config[:target]
|
96
80
|
config[:target].each do |val|
|
97
81
|
menu.choice(val) do |command|
|
98
82
|
say("Using #{command}")
|
@@ -111,7 +95,7 @@ class App < Thor
|
|
111
95
|
# Add custom domain
|
112
96
|
say "\nCUSTOM DOMAIN"
|
113
97
|
say "============="
|
114
|
-
if
|
98
|
+
if agree "Do you want to use #{data[:target_server].gsub(/^([a-z\d]*)/, data[:application_name])}? [y/n]", true
|
115
99
|
data[:domains] = data[:target_server].gsub(/^([a-z\d]*)/, data[:application_name])
|
116
100
|
else
|
117
101
|
data[:domains] = ask "Please enter the domains separated by spaces"
|
@@ -120,9 +104,13 @@ class App < Thor
|
|
120
104
|
|
121
105
|
init(".", data)
|
122
106
|
|
107
|
+
puts "[Negroku] => Running capistrano task deploy:setup"
|
108
|
+
`cap deploy:setup`
|
109
|
+
|
123
110
|
say "\n\nWhat to do next?\n".bright()
|
124
|
-
say "You can try with
|
125
|
-
say "Also you can check the config/deploy.rb file, you may want to change some things there"
|
111
|
+
say "You can try with " + "cap -T".color(:yellow) +" to see the available tasks"
|
112
|
+
say "Also you can check the " + "config/deploy.rb".color(:yellow) + " file, you may want to change some things there"
|
113
|
+
say "NOTE: If this is the first time the app is deployed, use the task " + "cap deploy:cold task".color(:yellow)
|
126
114
|
say "\n HAPPY DEPLOY".foreground(:green)
|
127
115
|
end
|
128
116
|
|
@@ -132,27 +120,6 @@ class App < Thor
|
|
132
120
|
end
|
133
121
|
end
|
134
122
|
|
135
|
-
class Repo < Thor
|
136
|
-
|
137
|
-
desc "add", "add new default repositories"
|
138
|
-
def add(url=nil)
|
139
|
-
if url.nil?
|
140
|
-
url = ask("Type the url and username e.g. git@github.com:username")
|
141
|
-
end
|
142
|
-
saveConfig(:add, :repo, url)
|
143
|
-
end
|
144
|
-
|
145
|
-
desc "remove", "remove some repo"
|
146
|
-
def remove
|
147
|
-
puts "I will remove a repo"
|
148
|
-
end
|
149
|
-
|
150
|
-
desc "list", "show the repost"
|
151
|
-
def list
|
152
|
-
puts "I will list the target servers"
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
123
|
class Target < Thor
|
157
124
|
desc "add", "add new default target server"
|
158
125
|
def add(host=nil)
|
@@ -160,6 +127,7 @@ class Target < Thor
|
|
160
127
|
host = ask("Type the host or ip for the target machine")
|
161
128
|
end
|
162
129
|
saveConfig(:add, :target, host)
|
130
|
+
say "[Negroku] Added #{host}"
|
163
131
|
end
|
164
132
|
|
165
133
|
desc "remove", "remove some target"
|
@@ -202,7 +170,7 @@ class RemoteEnv < Thor
|
|
202
170
|
# If nothing was sent
|
203
171
|
elsif key.nil? && value.nil?
|
204
172
|
# Check if the .rbenv-vars file exists and offer get the info from there
|
205
|
-
if File.exist?(".rbenv-vars") && (
|
173
|
+
if File.exist?(".rbenv-vars") && (agree "Do you want to add variables from your local .rbenv-vars file [y/n]", true)
|
206
174
|
choose do |menu|
|
207
175
|
menu.prompt = "Please choose variable you want to add?".bright()
|
208
176
|
menu.select_by = :index
|
@@ -227,7 +195,6 @@ end
|
|
227
195
|
module Negroku
|
228
196
|
class CLI < Thor
|
229
197
|
register(App, 'app', 'app [COMMAND]', 'Application')
|
230
|
-
register(Repo, 'repo', 'repo [COMMAND]', 'Repositories')
|
231
198
|
register(Target, 'target', 'target [COMMAND]', 'Target servers')
|
232
199
|
register(Konfig, 'config', 'config [COMMAND]', 'Configuration')
|
233
200
|
register(RemoteEnv, 'env', 'env [COMMAND]', 'Remote environmental variables')
|
data/lib/negroku/deploy.rb
CHANGED
@@ -21,6 +21,10 @@ ssh_options[:forward_agent] = true
|
|
21
21
|
ssh_options[:port] = 22
|
22
22
|
default_run_options[:pty] = true
|
23
23
|
|
24
|
+
# Use the bundler capistrano task to deploy to the shared folder
|
25
|
+
require "bundler/capistrano"
|
26
|
+
set :bundle_flags, "--deployment --binstubs"
|
27
|
+
|
24
28
|
##
|
25
29
|
# Load Deployment Tasks
|
26
30
|
load_tasks('base')
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# Number of workers (Rule of thumb is 2 per CPU)
|
2
2
|
# Just be aware that every worker needs to cache all classes and thus eat some
|
3
3
|
# of your RAM.
|
4
|
-
set_default :unicorn_workers,
|
4
|
+
set_default :unicorn_workers, 1
|
5
5
|
|
6
6
|
# Workers timeout in the amount of seconds below, when the master kills it and
|
7
7
|
# forks another one.
|
@@ -47,6 +47,7 @@ namespace :unicorn do
|
|
47
47
|
end
|
48
48
|
|
49
49
|
after "deploy", "unicorn:restart"
|
50
|
+
after "deploy:cold", "unicorn:start"
|
50
51
|
end
|
51
52
|
|
52
53
|
|
@@ -16,6 +16,8 @@ set :branch, "production" # Optional, defaults to master
|
|
16
16
|
# Web server configuration
|
17
17
|
set :domains, "<%= data[:domains] %>"
|
18
18
|
|
19
|
-
#
|
20
|
-
|
21
|
-
|
19
|
+
# Database
|
20
|
+
# set :migrate_env, "migration"
|
21
|
+
|
22
|
+
# Unicorn
|
23
|
+
set :unicorn_workers, 1
|
data/lib/negroku/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: negroku
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|