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