mybot 0.0.4 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Botfile +7 -61
- data/CHANGELOG.md +2 -25
- data/README.md +72 -189
- data/lib/mybot.rb +20 -21
- data/lib/mybot/base.rb +6 -2
- data/lib/mybot/cli.rb +45 -5
- data/lib/mybot/command.rb +37 -28
- data/lib/mybot/fmt.rb +143 -52
- data/lib/mybot/helpers.rb +24 -0
- data/lib/mybot/installer.rb +31 -0
- data/lib/mybot/lib.rb +20 -59
- data/lib/mybot/libs.rb +31 -28
- data/lib/mybot/loader.rb +25 -0
- data/lib/mybot/node.rb +100 -47
- data/lib/mybot/nodes.rb +16 -0
- data/lib/mybot/tasks.rb +47 -11
- data/lib/mybot/template.rb +8 -8
- data/lib/mybot/templates.rb +15 -0
- data/lib/mybot/version.rb +1 -1
- data/vendor/lib/{core/.gitkeep → .gitkeep} +0 -0
- data/vendor/{recipes → plugins}/.gitkeep +0 -0
- data/vendor/{tpl/core → tasks}/.gitkeep +0 -0
- data/vendor/tpl/.gitkeep +0 -0
- metadata +11 -34
- data/lib/mybot/aws.rb +0 -54
- data/lib/mybot/commands.rb +0 -108
- data/lib/mybot/core-ext/array.rb +0 -9
- data/lib/mybot/core-ext/class.rb +0 -53
- data/lib/mybot/core-ext/kernel.rb +0 -21
- data/lib/mybot/messages.rb +0 -30
- data/lib/mybot/recipes.rb +0 -25
- data/lib/mybot/result.rb +0 -26
- data/lib/mybot/utils.rb +0 -7
- data/vendor/lib/core/fs.rb +0 -191
- data/vendor/lib/core/osx/git.rb +0 -31
- data/vendor/lib/core/osx/rails.rb +0 -31
- data/vendor/lib/core/osx/static.rb +0 -31
- data/vendor/lib/core/ubuntu/apache.rb +0 -42
- data/vendor/lib/core/ubuntu/apt.rb +0 -57
- data/vendor/lib/core/ubuntu/git.rb +0 -48
- data/vendor/lib/core/ubuntu/mysql.rb +0 -214
- data/vendor/lib/core/ubuntu/nginx.rb +0 -43
- data/vendor/lib/core/ubuntu/passenger.rb +0 -55
- data/vendor/lib/core/ubuntu/php.rb +0 -76
- data/vendor/lib/core/ubuntu/rails.rb +0 -105
- data/vendor/lib/core/ubuntu/ruby.rb +0 -166
- data/vendor/lib/core/ubuntu/service.rb +0 -30
- data/vendor/lib/core/ubuntu/static.rb +0 -50
- data/vendor/lib/core/ubuntu/users.rb +0 -76
- data/vendor/lib/core/ubuntu/vim.rb +0 -31
- data/vendor/tpl/core/ubuntu/apache/apache2.conf.erb +0 -80
- data/vendor/tpl/core/ubuntu/nginx/nginx.conf.erb +0 -72
- data/vendor/tpl/core/ubuntu/php/php.ini.erb +0 -1818
@@ -1,166 +0,0 @@
|
|
1
|
-
module Core
|
2
|
-
module Ubuntu
|
3
|
-
class Ruby < Mybot::Lib
|
4
|
-
RBENV_ROOT = "/usr/local/rbenv"
|
5
|
-
|
6
|
-
def initialize(node)
|
7
|
-
@node = node
|
8
|
-
@node.use [
|
9
|
-
"core/fs",
|
10
|
-
"core/ubuntu/apt"
|
11
|
-
]
|
12
|
-
end
|
13
|
-
|
14
|
-
def system_installed?(options = {})
|
15
|
-
options[:file] = "/usr/bin/ruby"
|
16
|
-
@node.fs.exists?(options)
|
17
|
-
end
|
18
|
-
|
19
|
-
def system_install(options = {})
|
20
|
-
options[:pkg] = "ruby"
|
21
|
-
@node.apt.install(options)
|
22
|
-
end
|
23
|
-
|
24
|
-
def system_remove(options = {})
|
25
|
-
options[:pkg] = "ruby"
|
26
|
-
@node.apt.remove(options)
|
27
|
-
end
|
28
|
-
|
29
|
-
def rbenv_installed?(options = {})
|
30
|
-
options[:file] = "/usr/bin/rbenv"
|
31
|
-
@node.fs.exists?(options)
|
32
|
-
end
|
33
|
-
|
34
|
-
def rbenv_install(options = {})
|
35
|
-
options[:pkg] = "rbenv"
|
36
|
-
@node.apt.install(options)
|
37
|
-
|
38
|
-
options[:pkg] = "ruby-build"
|
39
|
-
@node.apt.install(options)
|
40
|
-
|
41
|
-
options.delete(:file)
|
42
|
-
options[:dir] = RBENV_ROOT
|
43
|
-
@node.fs.create(options)
|
44
|
-
end
|
45
|
-
|
46
|
-
def rbenv_remove(options = {})
|
47
|
-
options[:pkg] = "rbenv"
|
48
|
-
@node.apt.remove(options)
|
49
|
-
|
50
|
-
options[:pkg] = "ruby-build"
|
51
|
-
@node.apt.remove(options)
|
52
|
-
|
53
|
-
options[:dir] = RBENV_ROOT
|
54
|
-
@node.fs.remove(options)
|
55
|
-
end
|
56
|
-
|
57
|
-
def rbenv_version_list(options = {})
|
58
|
-
options[:env] ||= {
|
59
|
-
"RBENV_ROOT" => RBENV_ROOT
|
60
|
-
}
|
61
|
-
options[:cmd] = "rbenv versions"
|
62
|
-
versions = @node.run(options).stdout
|
63
|
-
versions.split("\r\n").map { |v| v.strip }
|
64
|
-
end
|
65
|
-
|
66
|
-
def rbenv_version_installed?(options = {})
|
67
|
-
error "ruby_version is required" unless options[:ruby_version]
|
68
|
-
|
69
|
-
rbenv_version_list(options).include?(options[:ruby_version])
|
70
|
-
end
|
71
|
-
|
72
|
-
def rbenv_version_install(options = {})
|
73
|
-
error "ruby_version is required" unless options[:ruby_version]
|
74
|
-
|
75
|
-
options[:env] ||= {
|
76
|
-
"RBENV_ROOT" => RBENV_ROOT
|
77
|
-
}
|
78
|
-
|
79
|
-
if options[:ruby_version].include?("1.8.7")
|
80
|
-
options[:env]["CFLAGS"] = "-O2 "
|
81
|
-
options[:env]["CFLAGS"] += "-fno-tree-dce "
|
82
|
-
options[:env]["CFLAGS"] += "-fno-optimize-sibling-calls"
|
83
|
-
end
|
84
|
-
|
85
|
-
options[:cmd] = "rbenv install #{options[:ruby_version]}"
|
86
|
-
@node.run(options)
|
87
|
-
end
|
88
|
-
|
89
|
-
def rbenv_version_remove(options = {})
|
90
|
-
error "ruby_version is required" unless options[:ruby_version]
|
91
|
-
|
92
|
-
options[:dir] = "#{RBENV_ROOT}/versions/#{options[:ruby_version]}"
|
93
|
-
@node.fs.remove(options)
|
94
|
-
end
|
95
|
-
|
96
|
-
def rbenv_exec(options = {})
|
97
|
-
error "ruby_version is required" unless options[:ruby_version]
|
98
|
-
error "cmd is required" unless options[:cmd]
|
99
|
-
|
100
|
-
options[:env] ||= {
|
101
|
-
"RBENV_ROOT" => RBENV_ROOT,
|
102
|
-
"RBENV_VERSION" => options[:ruby_version]
|
103
|
-
}
|
104
|
-
|
105
|
-
options[:cmd] = "rbenv exec #{options[:cmd]}"
|
106
|
-
@node.run(options).stdout
|
107
|
-
end
|
108
|
-
|
109
|
-
def rbenv_gem_list(options = {})
|
110
|
-
options[:cmd] = "gem list"
|
111
|
-
gems = rbenv_exec(options)
|
112
|
-
gems = gems.split("\r\n").reject do |g|
|
113
|
-
g.strip == "" || g == "*** LOCAL GEMS ***"
|
114
|
-
end.map do |g|
|
115
|
-
parts = g.split("(")
|
116
|
-
{
|
117
|
-
:gem_name => parts[0].strip,
|
118
|
-
:gem_versions => parts[1].split(",").map do |v|
|
119
|
-
v.gsub(")", "").strip
|
120
|
-
end
|
121
|
-
}
|
122
|
-
end
|
123
|
-
end
|
124
|
-
|
125
|
-
def rbenv_gem_installed?(options = {})
|
126
|
-
error "gem_name is required" unless options[:gem_name]
|
127
|
-
|
128
|
-
rbenv_gem_list(options).each do |g|
|
129
|
-
if g[:gem_name] == options[:gem_name]
|
130
|
-
if options[:gem_version]
|
131
|
-
if g[:gem_versions].include?(options[:gem_version])
|
132
|
-
return true
|
133
|
-
end
|
134
|
-
else
|
135
|
-
return true
|
136
|
-
end
|
137
|
-
end
|
138
|
-
end
|
139
|
-
|
140
|
-
false
|
141
|
-
end
|
142
|
-
|
143
|
-
def rbenv_gem_install(options = {})
|
144
|
-
error "gem_name is required" unless options[:gem_name]
|
145
|
-
|
146
|
-
options[:cmd] = "gem install #{options[:gem_name]} --no-ri --no-rdoc"
|
147
|
-
if options[:gem_version]
|
148
|
-
options[:cmd] += " -v=#{options[:gem_version]}"
|
149
|
-
end
|
150
|
-
|
151
|
-
rbenv_exec(options)
|
152
|
-
end
|
153
|
-
|
154
|
-
def rbenv_gem_remove(options = {})
|
155
|
-
error "gem is required" unless options[:gem_name]
|
156
|
-
|
157
|
-
options[:cmd] = "gem uninstall #{options[:gem]} -Iax"
|
158
|
-
if options[:gem_version]
|
159
|
-
options[:cmd] += " -v=#{options[:gem_version]}"
|
160
|
-
end
|
161
|
-
|
162
|
-
rbenv_exec(options)
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Core
|
2
|
-
module Ubuntu
|
3
|
-
class Service < Mybot::Lib
|
4
|
-
def initialize(node)
|
5
|
-
@node = node
|
6
|
-
end
|
7
|
-
|
8
|
-
def start(options = {})
|
9
|
-
error "service is required" unless options[:service]
|
10
|
-
|
11
|
-
options[:cmd] = "service #{options[:service]} start"
|
12
|
-
@node.run(options)
|
13
|
-
end
|
14
|
-
|
15
|
-
def stop(options = {})
|
16
|
-
error "service is required" unless options[:service]
|
17
|
-
|
18
|
-
options[:cmd] = "service #{options[:service]} stop"
|
19
|
-
@node.run(options)
|
20
|
-
end
|
21
|
-
|
22
|
-
def restart(options = {})
|
23
|
-
error "service is required" unless options[:service]
|
24
|
-
|
25
|
-
options[:cmd] = "service #{options[:service]} restart"
|
26
|
-
@node.run(options)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
module Core
|
2
|
-
module Ubuntu
|
3
|
-
class Static < Mybot::Lib
|
4
|
-
def initialize(node)
|
5
|
-
@node = node
|
6
|
-
@node.use [
|
7
|
-
"core/fs"
|
8
|
-
]
|
9
|
-
end
|
10
|
-
|
11
|
-
def setup_deployment(options = {})
|
12
|
-
error "app_name is required" unless options[:app_name]
|
13
|
-
|
14
|
-
options[:dir] = "/home/#{options[:app_name]}/releases"
|
15
|
-
@node.fs.require_created(options)
|
16
|
-
end
|
17
|
-
|
18
|
-
def deploy(options = {})
|
19
|
-
error "app_name is required" unless options[:app_name]
|
20
|
-
error "release is required" unless options[:release]
|
21
|
-
|
22
|
-
releases_path = "/home/#{options[:app_name]}/releases"
|
23
|
-
release_path = "#{releases_path}/#{options[:release]}"
|
24
|
-
current_path = "/home/#{options[:app_name]}/current"
|
25
|
-
|
26
|
-
# upload release archive
|
27
|
-
options[:from] = options[:to] = "/tmp/#{options[:release]}.tar.gz"
|
28
|
-
@node.fs.upload(options)
|
29
|
-
|
30
|
-
# extract archive
|
31
|
-
options[:to] = releases_path
|
32
|
-
@node.fs.extract(options)
|
33
|
-
|
34
|
-
# link current
|
35
|
-
options[:dir] = current_path
|
36
|
-
@node.fs.remove(options)
|
37
|
-
|
38
|
-
options[:from] = release_path
|
39
|
-
options[:to] = current_path
|
40
|
-
@node.fs.link(options)
|
41
|
-
|
42
|
-
# repair permissions
|
43
|
-
options[:dir] = "/home/#{options[:app_name]}"
|
44
|
-
options[:user] = options[:app_name]
|
45
|
-
options[:group] = options[:app_name]
|
46
|
-
@node.fs.chown(options)
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
module Core
|
2
|
-
module Ubuntu
|
3
|
-
class Users < Mybot::Lib
|
4
|
-
def initialize(node)
|
5
|
-
@node = node
|
6
|
-
end
|
7
|
-
|
8
|
-
def list(options = {})
|
9
|
-
options[:cmd] = "cat /etc/passwd | cut -d: -f1"
|
10
|
-
out = @node.run(options).stdout
|
11
|
-
out.split("\r\n")
|
12
|
-
end
|
13
|
-
|
14
|
-
def exists?(options = {})
|
15
|
-
error "username is required" unless options[:username]
|
16
|
-
|
17
|
-
list(options).include?(options[:username])
|
18
|
-
end
|
19
|
-
|
20
|
-
def create(options = {})
|
21
|
-
error "username is required" unless options[:username]
|
22
|
-
error "password is required" unless options[:password]
|
23
|
-
|
24
|
-
options[:cmd] = "adduser #{options[:username]}"
|
25
|
-
options[:fullname] ||= ""
|
26
|
-
options[:room_number] ||= ""
|
27
|
-
options[:work_phone] ||= ""
|
28
|
-
options[:home_phone] ||= ""
|
29
|
-
|
30
|
-
@node.run(options) do |cmd|
|
31
|
-
cmd.on "Enter new UNIX password:" do
|
32
|
-
cmd.write options[:password]
|
33
|
-
end
|
34
|
-
|
35
|
-
cmd.on "Retype new UNIX password:" do
|
36
|
-
cmd.write options[:password]
|
37
|
-
end
|
38
|
-
|
39
|
-
cmd.on "Full Name []:" do
|
40
|
-
cmd.write options[:fullname]
|
41
|
-
end
|
42
|
-
|
43
|
-
cmd.on "Room Number []:" do
|
44
|
-
cmd.write options[:room_number]
|
45
|
-
end
|
46
|
-
|
47
|
-
cmd.on "Work Phone []:" do
|
48
|
-
cmd.write options[:work_phone]
|
49
|
-
end
|
50
|
-
|
51
|
-
cmd.on "Home Phone []:" do
|
52
|
-
cmd.write options[:home_phone]
|
53
|
-
end
|
54
|
-
|
55
|
-
cmd.on "Other []:" do
|
56
|
-
cmd.write "user created by mybot"
|
57
|
-
end
|
58
|
-
|
59
|
-
cmd.on "Is the information correct? [Y/n]" do
|
60
|
-
cmd.write "Y"
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def remove(options = {})
|
66
|
-
error "username is required" unless options[:username]
|
67
|
-
|
68
|
-
options[:cmd] = "userdel #{options[:username]}"
|
69
|
-
@node.run(options)
|
70
|
-
|
71
|
-
options[:cmd] = "rm -rf /home/#{options[:username]}"
|
72
|
-
@node.run(options)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
module Core
|
2
|
-
module Ubuntu
|
3
|
-
class Vim < Mybot::Lib
|
4
|
-
def initialize(node)
|
5
|
-
@node = node
|
6
|
-
@node.use [
|
7
|
-
"core/fs",
|
8
|
-
"core/ubuntu/apt"
|
9
|
-
]
|
10
|
-
end
|
11
|
-
|
12
|
-
def installed?(options = {})
|
13
|
-
options[:file] = "/usr/bin/vim"
|
14
|
-
@node.fs.exists?(options)
|
15
|
-
end
|
16
|
-
|
17
|
-
def install(options = {})
|
18
|
-
options[:pkg] = "vim"
|
19
|
-
@node.apt.install(options)
|
20
|
-
end
|
21
|
-
|
22
|
-
def remove(options = {})
|
23
|
-
options[:pkg] = "vim"
|
24
|
-
@node.apt.remove(options)
|
25
|
-
end
|
26
|
-
|
27
|
-
def reconfigure(options = {})
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
@@ -1,80 +0,0 @@
|
|
1
|
-
LockFile ${APACHE_LOCK_DIR}/accept.lock
|
2
|
-
PidFile ${APACHE_PID_FILE}
|
3
|
-
Timeout 300
|
4
|
-
KeepAlive On
|
5
|
-
MaxKeepAliveRequests 100
|
6
|
-
KeepAliveTimeout 5
|
7
|
-
|
8
|
-
<IfModule mpm_prefork_module>
|
9
|
-
StartServers 5
|
10
|
-
MinSpareServers 5
|
11
|
-
MaxSpareServers 10
|
12
|
-
MaxClients 150
|
13
|
-
MaxRequestsPerChild 0
|
14
|
-
</IfModule>
|
15
|
-
|
16
|
-
<IfModule mpm_worker_module>
|
17
|
-
StartServers 2
|
18
|
-
MinSpareThreads 25
|
19
|
-
MaxSpareThreads 75
|
20
|
-
ThreadLimit 64
|
21
|
-
ThreadsPerChild 25
|
22
|
-
MaxClients 150
|
23
|
-
MaxRequestsPerChild 0
|
24
|
-
</IfModule>
|
25
|
-
|
26
|
-
<IfModule mpm_event_module>
|
27
|
-
StartServers 2
|
28
|
-
MinSpareThreads 25
|
29
|
-
MaxSpareThreads 75
|
30
|
-
ThreadLimit 64
|
31
|
-
ThreadsPerChild 25
|
32
|
-
MaxClients 150
|
33
|
-
MaxRequestsPerChild 0
|
34
|
-
</IfModule>
|
35
|
-
|
36
|
-
User ${APACHE_RUN_USER}
|
37
|
-
Group ${APACHE_RUN_GROUP}
|
38
|
-
AccessFileName .htaccess
|
39
|
-
|
40
|
-
<Files ~ "^\.ht">
|
41
|
-
Order allow,deny
|
42
|
-
Deny from all
|
43
|
-
Satisfy all
|
44
|
-
</Files>
|
45
|
-
|
46
|
-
DefaultType None
|
47
|
-
HostnameLookups Off
|
48
|
-
ErrorLog ${APACHE_LOG_DIR}/error.log
|
49
|
-
LogLevel warn
|
50
|
-
|
51
|
-
Include mods-enabled/*.load
|
52
|
-
Include mods-enabled/*.conf
|
53
|
-
Include ports.conf
|
54
|
-
|
55
|
-
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
|
56
|
-
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
57
|
-
LogFormat "%h %l %u %t \"%r\" %>s %O" common
|
58
|
-
LogFormat "%{Referer}i -> %U" referer
|
59
|
-
LogFormat "%{User-agent}i" agent
|
60
|
-
|
61
|
-
Include conf.d/
|
62
|
-
|
63
|
-
<% if passenger[:enabled] %>
|
64
|
-
LoadModule passenger_module <%= passenger[:rbenv_root] %>/versions/<%= passenger[:ruby_version] %>/lib/ruby/gems/<%= passenger[:ruby_system_version] %>/gems/passenger-<%= passenger[:version] %>/libout/apache2/mod_passenger.so
|
65
|
-
PassengerRoot <%= passenger[:rbenv_root] %>/versions/<%= passenger[:ruby_version] %>/lib/ruby/gems/<%= passenger[:ruby_system_version] %>/gems/passenger-<%= passenger[:version] %>
|
66
|
-
PassengerDefaultRuby <%= passenger[:rbenv_root] %>/versions/<%= passenger[:ruby_version] %>/bin/ruby
|
67
|
-
<% end %>
|
68
|
-
|
69
|
-
<% apps.each do |name, app| %>
|
70
|
-
<% if app[:type] == "rails" %>
|
71
|
-
<VirtualHost *:80>
|
72
|
-
ServerName <%= app[:server_name] %>
|
73
|
-
DocumentRoot <%= app[:path] %>/public
|
74
|
-
<Directory <%= app[:path] %>/public>
|
75
|
-
AllowOverride all
|
76
|
-
Options -MultiViews
|
77
|
-
</Directory>
|
78
|
-
</VirtualHost>
|
79
|
-
<% end %>
|
80
|
-
<% end %>
|
@@ -1,72 +0,0 @@
|
|
1
|
-
user www-data;
|
2
|
-
worker_processes 4;
|
3
|
-
pid /var/run/nginx.pid;
|
4
|
-
|
5
|
-
events {
|
6
|
-
worker_connections 768;
|
7
|
-
# multi_accept on;
|
8
|
-
}
|
9
|
-
|
10
|
-
http {
|
11
|
-
sendfile on;
|
12
|
-
tcp_nopush on;
|
13
|
-
tcp_nodelay on;
|
14
|
-
keepalive_timeout 65;
|
15
|
-
types_hash_max_size 2048;
|
16
|
-
|
17
|
-
include /etc/nginx/mime.types;
|
18
|
-
default_type application/octet-stream;
|
19
|
-
|
20
|
-
access_log /var/log/nginx/access.log;
|
21
|
-
error_log /var/log/nginx/error.log;
|
22
|
-
|
23
|
-
gzip on;
|
24
|
-
gzip_disable "msie6";
|
25
|
-
|
26
|
-
#passenger_root /usr;
|
27
|
-
#passenger_ruby /usr/bin/ruby;
|
28
|
-
|
29
|
-
<% apps.each do |name, app| %>
|
30
|
-
<% if app[:type] == "static" %>
|
31
|
-
server {
|
32
|
-
listen <%= app[:listen] %>;
|
33
|
-
server_name <%= app[:server_name] %>;
|
34
|
-
root <%= app[:root] %>;
|
35
|
-
|
36
|
-
location / {
|
37
|
-
try_files $uri $uri/ $uri.html index.html;
|
38
|
-
}
|
39
|
-
}
|
40
|
-
<% elsif app[:type] == "php" %>
|
41
|
-
server {
|
42
|
-
listen <%= app[:listen] %>;
|
43
|
-
server_name <%= app[:server_name] %>;
|
44
|
-
root <%= app[:root] %>;
|
45
|
-
index index.html index.php;
|
46
|
-
|
47
|
-
location / {
|
48
|
-
try_files $uri $uri/ $uri.html index.html;
|
49
|
-
}
|
50
|
-
|
51
|
-
location ~ \.php$ {
|
52
|
-
fastcgi_split_path_info ^(.+\.php)(/.+)$;
|
53
|
-
fastcgi_pass unix:/var/run/php5-fpm.sock;
|
54
|
-
fastcgi_index index.php;
|
55
|
-
include fastcgi_params;
|
56
|
-
}
|
57
|
-
}
|
58
|
-
<% end %>
|
59
|
-
<% if app[:redirect_to_www] %>
|
60
|
-
server {
|
61
|
-
server_name <%= app[:server_name_without_www] %>;
|
62
|
-
rewrite ^(.*) http://<%= app[:server_name] %>$1 permanent;
|
63
|
-
}
|
64
|
-
<% end %>
|
65
|
-
<% if app[:redirect_from_www] %>
|
66
|
-
server {
|
67
|
-
server_name <%= app[:server_name_with_www] %>;
|
68
|
-
rewrite ^(.*) http://<%= app[:server_name] %>$1 permanent;
|
69
|
-
}
|
70
|
-
<% end %>
|
71
|
-
<% end %>
|
72
|
-
}
|