Class: EY::Serverside::CLI
Constant Summary
Constants inherited
from Thor
Thor::HELP_MAPPINGS, Thor::THOR_RESERVED_WORDS, Thor::VERSION
Instance Attribute Summary
Attributes included from Thor::Base
#args, #options, #parent_options
Instance Method Summary
collapse
Methods included from CLIHelpers
account_app_env_options, config_option, framework_env_option, instances_options, stack_option, verbose_option
Methods inherited from Thor
check_unknown_options!, check_unknown_options?, default_task, desc, help, #help, long_desc, map, method_option, method_options, printable_tasks, register, subcommand, subcommands, task_help
Methods included from Thor::Base
included, #initialize, register_klass_file, shell, shell=, subclass_files, subclasses
Instance Method Details
#deploy(default_task = :deploy) ⇒ Object
34
35
36
37
38
|
# File 'lib/engineyard-serverside/cli.rb', line 34
def deploy(default_task=:deploy)
init_and_propagate(options, default_task.to_s) do |servers, config, shell|
EY::Serverside::Deploy.new(servers, config, shell).send(default_task)
end
end
|
#disable_maintenance ⇒ Object
56
57
58
59
60
|
# File 'lib/engineyard-serverside/cli.rb', line 56
def disable_maintenance
init_and_propagate(options, 'disable_maintenance') do |servers, config, shell|
EY::Serverside::Maintenance.new(servers, config, shell).manually_disable
end
end
|
#enable_maintenance ⇒ Object
45
46
47
48
49
|
# File 'lib/engineyard-serverside/cli.rb', line 45
def enable_maintenance
init_and_propagate(options, 'enable_maintenance') do |servers, config, shell|
EY::Serverside::Maintenance.new(servers, config, shell).manually_enable
end
end
|
#hook(hook_name) ⇒ Object
76
77
78
79
80
|
# File 'lib/engineyard-serverside/cli.rb', line 76
def hook(hook_name)
init(options, "hook-#{hook_name}") do |config, shell|
EY::Serverside::DeployHook.new(config, shell, hook_name).call
end
end
|
#integrate ⇒ Object
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/engineyard-serverside/cli.rb', line 89
def integrate
app_dir = Pathname.new "/data/#{options[:app]}"
current_app_dir = app_dir.join("current")
integrate_options = options.dup
integrate_options[:release_path] = current_app_dir.realpath.to_s
integrate_options[:branch] = current_app_dir.join('REVISION').read.strip
init_and_propagate(integrate_options, 'integrate') do |servers, config, shell|
chown_command = "find #{app_dir} -not -user #{config.user} -or -not -group #{config.group} -exec chown #{config.user}:#{config.group} {} +"
shell.logged_system("sudo sh -l -c '#{chown_command}'", servers.detect {|s| s.local?})
servers.run_for_each! do |server|
sync = server.sync_directory_command(app_dir)
clean = server.command_on_server('sh -l -c', "rm -rf #{current_app_dir}")
"(#{sync}) && (#{clean})"
end
EY::Serverside::Deploy.new(servers, config, shell).cached_deploy
end
end
|
#restart ⇒ Object
122
123
124
125
126
|
# File 'lib/engineyard-serverside/cli.rb', line 122
def restart
init_and_propagate(options, 'restart') do |servers, config, shell|
EY::Serverside::Deploy.new(servers, config, shell).restart_with_maintenance_page
end
end
|