acquia_toolbelt 2.3.1 → 2.3.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.travis.yml +6 -5
- data/Gemfile +1 -1
- data/Gemfile.lock +1 -1
- data/lib/acquia_toolbelt/cli/api.rb +33 -28
- data/lib/acquia_toolbelt/cli/auth.rb +8 -8
- data/lib/acquia_toolbelt/cli/database.rb +43 -43
- data/lib/acquia_toolbelt/cli/deploy.rb +4 -4
- data/lib/acquia_toolbelt/cli/domain.rb +24 -24
- data/lib/acquia_toolbelt/cli/environment.rb +16 -15
- data/lib/acquia_toolbelt/cli/file.rb +6 -6
- data/lib/acquia_toolbelt/cli/server.rb +25 -24
- data/lib/acquia_toolbelt/cli/site.rb +12 -7
- data/lib/acquia_toolbelt/cli/ssh.rb +22 -18
- data/lib/acquia_toolbelt/cli/svn.rb +15 -15
- data/lib/acquia_toolbelt/cli/task.rb +12 -14
- data/lib/acquia_toolbelt/cli/ui.rb +2 -2
- data/lib/acquia_toolbelt/cli.rb +49 -45
- data/lib/acquia_toolbelt/thor.rb +7 -7
- data/lib/acquia_toolbelt/version.rb +1 -1
- data/lib/acquia_toolbelt.rb +1 -1
- metadata +3 -3
@@ -6,7 +6,7 @@ module AcquiaToolbelt
|
|
6
6
|
# Output environment information.
|
7
7
|
#
|
8
8
|
# Returns enviroment data.
|
9
|
-
desc
|
9
|
+
desc 'list', 'List all environment data.'
|
10
10
|
def list
|
11
11
|
if options[:subscription]
|
12
12
|
subscription = options[:subscription]
|
@@ -20,17 +20,17 @@ module AcquiaToolbelt
|
|
20
20
|
if environment
|
21
21
|
environments = [environment]
|
22
22
|
else
|
23
|
-
environments = AcquiaToolbelt::CLI::API.
|
23
|
+
environments = AcquiaToolbelt::CLI::API.environments
|
24
24
|
end
|
25
25
|
|
26
|
-
environments.each do |
|
27
|
-
env_info = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{
|
26
|
+
environments.each do |env|
|
27
|
+
env_info = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{env}"
|
28
28
|
ui.say
|
29
|
-
ui.say "> Host: #{env_info[
|
30
|
-
ui.say "> Environment: #{env_info[
|
31
|
-
ui.say "> Current release: #{env_info[
|
32
|
-
ui.say "> DB clusters: #{env_info[
|
33
|
-
ui.say "> Default domain: #{env_info[
|
29
|
+
ui.say "> Host: #{env_info['ssh_host']}"
|
30
|
+
ui.say "> Environment: #{env_info['name']}"
|
31
|
+
ui.say "> Current release: #{env_info['vcs_path']}"
|
32
|
+
ui.say "> DB clusters: #{env_info['db_clusters'].join(', ')}"
|
33
|
+
ui.say "> Default domain: #{env_info['default_domain']}"
|
34
34
|
end
|
35
35
|
end
|
36
36
|
|
@@ -39,10 +39,11 @@ module AcquiaToolbelt
|
|
39
39
|
# Valid actions are enable or disable.
|
40
40
|
#
|
41
41
|
# Returns a status message.
|
42
|
-
desc
|
43
|
-
method_option :action, :type => :string, :aliases => %w(-a),
|
44
|
-
:
|
45
|
-
:
|
42
|
+
desc 'live-development', 'Enable/disbale live development on an environment.'
|
43
|
+
method_option :action, :type => :string, :aliases => %w(-a),
|
44
|
+
:required => true, :enum => ['enable', 'disable'],
|
45
|
+
:desc => 'Status of live development (enable/disable).'
|
46
|
+
|
46
47
|
def live_development
|
47
48
|
if options[:environment].nil?
|
48
49
|
ui.say "No value provided for required options '--environment'"
|
@@ -58,9 +59,9 @@ module AcquiaToolbelt
|
|
58
59
|
action = options[:action]
|
59
60
|
environment = options[:environment]
|
60
61
|
|
61
|
-
live_development_set = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{environment}/livedev/#{action}",
|
62
|
+
live_development_set = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{environment}/livedev/#{action}", 'POST'
|
62
63
|
|
63
|
-
if live_development_set[
|
64
|
+
if live_development_set['id']
|
64
65
|
ui.success "Live development has been successfully #{action}d on #{environment}."
|
65
66
|
else
|
66
67
|
ui.fail AcquiaToolbelt::CLI::API.display_error(live_development_set)
|
@@ -4,11 +4,11 @@ module AcquiaToolbelt
|
|
4
4
|
# Public: Copy files from one environment to another.
|
5
5
|
#
|
6
6
|
# Returns a status message from the task.
|
7
|
-
desc
|
8
|
-
method_option :origin, :type => :string, :aliases => %w(-o),
|
9
|
-
:desc =>
|
10
|
-
method_option :target, :type => :string, :aliases => %w(-t),
|
11
|
-
:desc =>
|
7
|
+
desc 'copy', 'Copy files from one environment to another.'
|
8
|
+
method_option :origin, :type => :string, :aliases => %w(-o),
|
9
|
+
:required => true, :desc => 'Source environment for the file copy.'
|
10
|
+
method_option :target, :type => :string, :aliases => %w(-t),
|
11
|
+
:required => true, :desc => 'Target environment for the file copy.'
|
12
12
|
def copy
|
13
13
|
if options[:subscription]
|
14
14
|
subscription = options[:subscription]
|
@@ -20,7 +20,7 @@ module AcquiaToolbelt
|
|
20
20
|
target = options[:target]
|
21
21
|
file_copy = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/files-copy/#{source}/#{target}", "POST"
|
22
22
|
|
23
|
-
if file_copy[
|
23
|
+
if file_copy['id']
|
24
24
|
ui.success "File copy from #{source} to #{target} has started."
|
25
25
|
else
|
26
26
|
ui.fail AcquiaToolbelt::CLI::API.display_error(file_copy)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module AcquiaToolbelt
|
2
2
|
class CLI
|
3
3
|
class Servers < AcquiaToolbelt::Thor
|
4
|
-
desc
|
4
|
+
desc 'list', 'List all servers.'
|
5
5
|
def list
|
6
6
|
if options[:subscription]
|
7
7
|
subscription = options[:subscription]
|
@@ -10,58 +10,59 @@ module AcquiaToolbelt
|
|
10
10
|
end
|
11
11
|
|
12
12
|
environment = options[:environment]
|
13
|
-
# Determine if we want just a single environment, or all of them at
|
13
|
+
# Determine if we want just a single environment, or all of them at
|
14
|
+
# once.
|
14
15
|
if environment
|
15
16
|
environments = [environment]
|
16
17
|
else
|
17
|
-
environments = AcquiaToolbelt::CLI::API.
|
18
|
+
environments = AcquiaToolbelt::CLI::API.environments
|
18
19
|
end
|
19
20
|
|
20
21
|
# Loop over each environment and get all the associated server data.
|
21
|
-
environments.each do |
|
22
|
+
environments.each do |env|
|
22
23
|
ui.say
|
23
|
-
ui.say "Environment: #{
|
24
|
+
ui.say "Environment: #{env}"
|
24
25
|
|
25
|
-
server_env = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{
|
26
|
+
server_env = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/envs/#{env}/servers"
|
26
27
|
server_env.each do |server|
|
27
28
|
ui.say
|
28
|
-
ui.say "> Host: #{server[
|
29
|
-
ui.say "> Region: #{server[
|
30
|
-
ui.say "> Instance type: #{server[
|
31
|
-
ui.say "> Availability zone: #{server[
|
29
|
+
ui.say "> Host: #{server['fqdn']}"
|
30
|
+
ui.say "> Region: #{server['ec2_region']}"
|
31
|
+
ui.say "> Instance type: #{server['ami_type']}"
|
32
|
+
ui.say "> Availability zone: #{server['ec2_availability_zone']}"
|
32
33
|
|
33
34
|
# Show how many PHP processes this node can have. Note, this is only
|
34
35
|
# available on the web servers.
|
35
|
-
if server[
|
36
|
-
ui.say "> PHP max processes: #{server[
|
36
|
+
if server['services'] && server['services']['php_max_procs']
|
37
|
+
ui.say "> PHP max processes: #{server['services']['php_max_procs']}"
|
37
38
|
end
|
38
39
|
|
39
|
-
if server[
|
40
|
-
ui.say "> Status: #{server[
|
40
|
+
if server['services'] && server['services']['status']
|
41
|
+
ui.say "> Status: #{server['services']['status']}"
|
41
42
|
end
|
42
43
|
|
43
|
-
if server[
|
44
|
-
ui.say "> Web status: #{server[
|
44
|
+
if server['services'] && server['services']['web']
|
45
|
+
ui.say "> Web status: #{server['services']['web']['status']}"
|
45
46
|
end
|
46
47
|
|
47
48
|
# The state of varnish.
|
48
|
-
if server[
|
49
|
-
ui.say "> Varnish status: #{server[
|
49
|
+
if server['services'] && server['services']['varnish']
|
50
|
+
ui.say "> Varnish status: #{server['services']['varnish']['status']}"
|
50
51
|
end
|
51
52
|
|
52
|
-
# Only load balancers will have the
|
53
|
-
if server[
|
54
|
-
ui.say "> External IP: #{server[
|
53
|
+
# Only load balancers will have the 'external IP' property.
|
54
|
+
if server['services'] && server['services']['external_ip']
|
55
|
+
ui.say "> External IP: #{server['services']['external_ip']}"
|
55
56
|
end
|
56
57
|
|
57
58
|
# If running a dedicated load balancer, there will be a ELB domain
|
58
59
|
# associated with the load balancing tier.
|
59
|
-
if server[
|
60
|
-
ui.say "> ELB hostname: #{server[
|
60
|
+
if server['services'] && server['services']['elb_domain_name']
|
61
|
+
ui.say "> ELB hostname: #{server['services']['elb_domain_name']}"
|
61
62
|
end
|
62
63
|
end
|
63
64
|
end
|
64
65
|
end
|
65
66
|
end
|
66
67
|
end
|
67
|
-
end
|
68
|
+
end
|
@@ -4,23 +4,28 @@ module AcquiaToolbelt
|
|
4
4
|
# Public: List all subscriptions the user has access to.
|
5
5
|
#
|
6
6
|
# Returns a list of subscriptions.
|
7
|
-
desc
|
7
|
+
desc 'list', 'List all subscriptions you have access to.'
|
8
8
|
def list
|
9
|
-
sites = AcquiaToolbelt::CLI::API.request
|
9
|
+
sites = AcquiaToolbelt::CLI::API.request 'sites'
|
10
10
|
|
11
11
|
sites.each do |site|
|
12
12
|
ui.say
|
13
13
|
# Get the individual subscription information.
|
14
14
|
site_data = AcquiaToolbelt::CLI::API.request "sites/#{site}"
|
15
15
|
|
16
|
-
ui.say "#{site_data[
|
17
|
-
ui.say "> Username: #{site_data[
|
18
|
-
ui.say "> Subscription: #{site_data[
|
16
|
+
ui.say "#{site_data['title']}"
|
17
|
+
ui.say "> Username: #{site_data['unix_username']}"
|
18
|
+
ui.say "> Subscription: #{site_data['name']}"
|
19
19
|
|
20
20
|
# If the VCS type is SVN, we want it in all uppercase, otherwise just
|
21
21
|
# capitilise it.
|
22
|
-
|
23
|
-
|
22
|
+
if site_data['vcs_type'] == 'svn'
|
23
|
+
vcs_name = site_data['vcs_type'].upcase
|
24
|
+
else
|
25
|
+
vcs_name = site_data['vcs_type'].capitalize
|
26
|
+
end
|
27
|
+
|
28
|
+
ui.say "> #{vcs_name} URL: #{site_data['vcs_url']}"
|
24
29
|
end
|
25
30
|
end
|
26
31
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require
|
1
|
+
require 'sshkey'
|
2
2
|
|
3
3
|
module AcquiaToolbelt
|
4
4
|
class CLI
|
@@ -6,7 +6,7 @@ module AcquiaToolbelt
|
|
6
6
|
# Public: List all SSH users.
|
7
7
|
#
|
8
8
|
# Returns a list of users and their SSH keys truncated.
|
9
|
-
desc
|
9
|
+
desc 'list', 'List all SSH users.'
|
10
10
|
def list
|
11
11
|
if options[:subscription]
|
12
12
|
subscription = options[:subscription]
|
@@ -17,18 +17,18 @@ module AcquiaToolbelt
|
|
17
17
|
users = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys"
|
18
18
|
users.each do |user|
|
19
19
|
say
|
20
|
-
say "> ID: #{user[
|
21
|
-
say "> Name: #{user[
|
22
|
-
say "> Fingerprint: #{SSHKey.fingerprint user[
|
20
|
+
say "> ID: #{user['id']}"
|
21
|
+
say "> Name: #{user['nickname']}"
|
22
|
+
say "> Fingerprint: #{SSHKey.fingerprint user['ssh_pub_key']}"
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
26
26
|
# Public: Delete a SSH key.
|
27
27
|
#
|
28
28
|
# Returns a status message.
|
29
|
-
desc
|
30
|
-
method_option :id, :type => :string, :aliases => %w(-i),
|
31
|
-
:desc =>
|
29
|
+
desc 'delete', 'Delete a SSH key.'
|
30
|
+
method_option :id, :type => :string, :aliases => %w(-i),
|
31
|
+
:required => true, :desc => 'User ID to delete from SSH users.'
|
32
32
|
def delete
|
33
33
|
if options[:subscription]
|
34
34
|
subscription = options[:subscription]
|
@@ -38,9 +38,9 @@ module AcquiaToolbelt
|
|
38
38
|
|
39
39
|
id = options[:id]
|
40
40
|
|
41
|
-
delete_ssh_request = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys/#{id}",
|
41
|
+
delete_ssh_request = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys/#{id}", 'DELETE'
|
42
42
|
|
43
|
-
if delete_ssh_request[
|
43
|
+
if delete_ssh_request['id']
|
44
44
|
ui.success "SSH key #{id} has been successfully deleted."
|
45
45
|
else
|
46
46
|
ui.fail AcquiaToolbelt::CLI::API.display_error(delete_ssh_key)
|
@@ -50,11 +50,11 @@ module AcquiaToolbelt
|
|
50
50
|
# Public: Add a SSH key to a subscription.
|
51
51
|
#
|
52
52
|
# Returns a status message.
|
53
|
-
desc
|
54
|
-
method_option :nickname, :type => :string, :aliases => %w(-n),
|
55
|
-
:desc =>
|
56
|
-
method_option :key, :type => :string, :aliases => %w(-k),
|
57
|
-
:desc =>
|
53
|
+
desc 'add', 'Add a SSH key.'
|
54
|
+
method_option :nickname, :type => :string, :aliases => %w(-n),
|
55
|
+
:required => true, :desc => 'Nickname to assign to the key.'
|
56
|
+
method_option :key, :type => :string, :aliases => %w(-k),
|
57
|
+
:required => true, :desc => 'Public SSH key to add.'
|
58
58
|
def add
|
59
59
|
if options[:subscription]
|
60
60
|
subscription = options[:subscription]
|
@@ -64,10 +64,14 @@ module AcquiaToolbelt
|
|
64
64
|
|
65
65
|
key = options[:key]
|
66
66
|
nickname = options[:nickname]
|
67
|
-
data = {
|
67
|
+
data = {
|
68
|
+
:key => 'nickname',
|
69
|
+
:value => "#{nickname}",
|
70
|
+
:ssh_pub_key => "#{key}"
|
71
|
+
}
|
68
72
|
|
69
|
-
add_ssh_key = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys",
|
70
|
-
if add_ssh_key[
|
73
|
+
add_ssh_key = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/sshkeys", 'QUERY-STRING-POST', data
|
74
|
+
if add_ssh_key['id']
|
71
75
|
ui.success "SSH key '#{nickname}' has been successfully added."
|
72
76
|
else
|
73
77
|
ui.fail AcquiaToolbelt::CLI::API.display_error(add_ssh_key)
|
@@ -4,7 +4,7 @@ module AcquiaToolbelt
|
|
4
4
|
# Public: List all SVN users.
|
5
5
|
#
|
6
6
|
# Returns a list of available users.
|
7
|
-
desc
|
7
|
+
desc 'list', 'List all SVN users.'
|
8
8
|
def list
|
9
9
|
if options[:subscription]
|
10
10
|
subscription = options[:subscription]
|
@@ -15,19 +15,19 @@ module AcquiaToolbelt
|
|
15
15
|
svn_users = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/svnusers"
|
16
16
|
svn_users.each do |user|
|
17
17
|
ui.say
|
18
|
-
ui.say "> ID: #{user[
|
19
|
-
ui.say "> Name: #{user[
|
18
|
+
ui.say "> ID: #{user['id']}"
|
19
|
+
ui.say "> Name: #{user['username']}"
|
20
20
|
end
|
21
21
|
end
|
22
22
|
|
23
23
|
# Public: Create a new SVN user.
|
24
24
|
#
|
25
25
|
# Returns a status message.
|
26
|
-
desc
|
27
|
-
method_option :username, :type => :string, :aliases => %w(-u),
|
28
|
-
:desc => "Username you wish to set."
|
29
|
-
method_option :password, :type => :string, :aliases => %w(-p),
|
30
|
-
:desc => "Password you wish to set."
|
26
|
+
desc 'add', 'Add a SVN user.'
|
27
|
+
method_option :username, :type => :string, :aliases => %w(-u),
|
28
|
+
:required => true, :desc => "Username you wish to set."
|
29
|
+
method_option :password, :type => :string, :aliases => %w(-p),
|
30
|
+
:required => true, :desc => "Password you wish to set."
|
31
31
|
def add
|
32
32
|
if options[:subscription]
|
33
33
|
subscription = options[:subscription]
|
@@ -38,8 +38,8 @@ module AcquiaToolbelt
|
|
38
38
|
username = options[:username]
|
39
39
|
password = options[:password]
|
40
40
|
|
41
|
-
add_svn_user = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/svnusers/#{username}",
|
42
|
-
if add_svn_user[
|
41
|
+
add_svn_user = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/svnusers/#{username}", 'POST', :password => "#{password}"
|
42
|
+
if add_svn_user['id']
|
43
43
|
ui.success "User '#{username}' has been successfully created."
|
44
44
|
else
|
45
45
|
ui.fail AcquiaToolbelt::CLI::API.display_error(add_svn_user)
|
@@ -49,9 +49,9 @@ module AcquiaToolbelt
|
|
49
49
|
# Public: Delete a SVN user.
|
50
50
|
#
|
51
51
|
# Returns a status message.
|
52
|
-
desc
|
53
|
-
method_option :id, :type => :string, :aliases => %w(-i),
|
54
|
-
:desc =>
|
52
|
+
desc 'delete', 'Delete an SVN user.'
|
53
|
+
method_option :id, :type => :string, :aliases => %w(-i),
|
54
|
+
:required => true, :desc => 'User ID to delete from SVN users.'
|
55
55
|
def delete
|
56
56
|
if options[:subscription]
|
57
57
|
subscription = options[:subscription]
|
@@ -61,8 +61,8 @@ module AcquiaToolbelt
|
|
61
61
|
|
62
62
|
userid = options[:id]
|
63
63
|
|
64
|
-
svn_user_removal = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/svnusers/#{userid}",
|
65
|
-
if svn_user_removal[
|
64
|
+
svn_user_removal = AcquiaToolbelt::CLI::API.request "sites/#{subscription}/svnusers/#{userid}", 'DELETE'
|
65
|
+
if svn_user_removal['id']
|
66
66
|
ui.success "#{userid} has been removed from the SVN users."
|
67
67
|
else
|
68
68
|
ui.fail AcquiaToolbelt::CLI::API.display_error(svn_user_removal)
|
@@ -7,32 +7,32 @@ module AcquiaToolbelt
|
|
7
7
|
# task - The task object that contains all the information about the
|
8
8
|
# task.
|
9
9
|
def output_task_item(task)
|
10
|
-
completion_time = (task[
|
10
|
+
completion_time = (task['completed'].to_i - task['started'].to_i) / 60
|
11
11
|
ui.say
|
12
|
-
ui.say "Task ID: #{task[
|
13
|
-
ui.say "Description: #{task[
|
14
|
-
ui.say "Status: #{task[
|
12
|
+
ui.say "Task ID: #{task['id'].to_i}"
|
13
|
+
ui.say "Description: #{task['description']}"
|
14
|
+
ui.say "Status: #{task['state']}"
|
15
15
|
|
16
16
|
# If the completion time is greater then 0, output it in minutes
|
17
17
|
# otherwise just say it was less then a minute.
|
18
18
|
if completion_time > 0
|
19
|
-
ui.say "
|
19
|
+
ui.say "Completion time: About #{completion_time} minutes"
|
20
20
|
else
|
21
|
-
ui.say
|
21
|
+
ui.say 'Completion time: Less than 1 minute'
|
22
22
|
end
|
23
23
|
|
24
|
-
ui.say "Queue: #{task[
|
24
|
+
ui.say "Queue: #{task['queue']}"
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
28
28
|
# Public: List all tasks from the Acquia tasks queue(s).
|
29
29
|
#
|
30
30
|
# Returns a task listing.
|
31
|
-
desc
|
31
|
+
desc 'list', 'List all tasks.'
|
32
32
|
method_option :queue, :type => :string, :aliases => %w(-q),
|
33
|
-
:desc =>
|
33
|
+
:desc => 'Task queue to target.'
|
34
34
|
method_option :count, :type => :string, :aliases => %w(-c),
|
35
|
-
:desc =>
|
35
|
+
:desc => 'Limit the tasks returned.'
|
36
36
|
def list
|
37
37
|
if options[:subscription]
|
38
38
|
subscription = options[:subscription]
|
@@ -50,7 +50,7 @@ module AcquiaToolbelt
|
|
50
50
|
# otherwise just add all the tasks.
|
51
51
|
if queue
|
52
52
|
all_tasks.each do |task|
|
53
|
-
if task[
|
53
|
+
if task['queue'] == queue
|
54
54
|
tasks << task
|
55
55
|
end
|
56
56
|
end
|
@@ -61,9 +61,7 @@ module AcquiaToolbelt
|
|
61
61
|
end
|
62
62
|
|
63
63
|
# If there is a count to return, restrict it to that required amount.
|
64
|
-
if count && tasks.any?
|
65
|
-
tasks = tasks.last(count.to_i)
|
66
|
-
end
|
64
|
+
tasks = tasks.last(count.to_i) if count && tasks.any?
|
67
65
|
|
68
66
|
tasks.each do |task|
|
69
67
|
output_task_item(task)
|
data/lib/acquia_toolbelt/cli.rb
CHANGED
@@ -1,44 +1,48 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require 'acquia_toolbelt'
|
2
|
+
require 'acquia_toolbelt/error'
|
3
|
+
require 'acquia_toolbelt/thor'
|
4
4
|
|
5
5
|
module AcquiaToolbelt
|
6
6
|
class CLI < AcquiaToolbelt::Thor
|
7
|
-
require
|
8
|
-
require
|
9
|
-
require
|
10
|
-
require
|
11
|
-
require
|
12
|
-
require
|
13
|
-
require
|
14
|
-
require
|
15
|
-
require
|
16
|
-
require
|
17
|
-
require
|
18
|
-
require
|
19
|
-
require
|
7
|
+
require 'acquia_toolbelt/cli/ui'
|
8
|
+
require 'acquia_toolbelt/cli/api'
|
9
|
+
require 'acquia_toolbelt/cli/auth'
|
10
|
+
require 'acquia_toolbelt/cli/database'
|
11
|
+
require 'acquia_toolbelt/cli/server'
|
12
|
+
require 'acquia_toolbelt/cli/ssh'
|
13
|
+
require 'acquia_toolbelt/cli/svn'
|
14
|
+
require 'acquia_toolbelt/cli/task'
|
15
|
+
require 'acquia_toolbelt/cli/site'
|
16
|
+
require 'acquia_toolbelt/cli/domain'
|
17
|
+
require 'acquia_toolbelt/cli/deploy'
|
18
|
+
require 'acquia_toolbelt/cli/file'
|
19
|
+
require 'acquia_toolbelt/cli/environment'
|
20
20
|
|
21
21
|
include Thor::Actions
|
22
22
|
|
23
23
|
def self.start(given_args = ARGV, config = {})
|
24
|
+
if given_args.empty?
|
25
|
+
abort 'No commands found. Run `acquia help` for a list of commands.'
|
26
|
+
end
|
27
|
+
|
24
28
|
Thor::Base.shell = AcquiaToolbelt::CLI::UI
|
25
29
|
ui = AcquiaToolbelt::CLI::UI.new
|
26
30
|
|
27
31
|
# Use a custom symbol to separate the commands. Useful for rake styled
|
28
32
|
# commands.
|
29
|
-
if given_args[0].include?
|
30
|
-
commands = given_args.shift.split(
|
33
|
+
if given_args[0].include? ':'
|
34
|
+
commands = given_args.shift.split(':')
|
31
35
|
given_args = given_args.unshift(commands).flatten
|
32
36
|
end
|
33
37
|
|
34
|
-
super(given_args, {:shell => ui}.merge(config))
|
38
|
+
super(given_args, { :shell => ui }.merge(config))
|
35
39
|
rescue AcquiaToolbelt::Error
|
36
40
|
ui.print_exception(e)
|
37
41
|
raise
|
38
42
|
rescue Interrupt => e
|
39
43
|
puts
|
40
44
|
ui.print_exception(e)
|
41
|
-
ui.say
|
45
|
+
ui.say 'Quitting...'
|
42
46
|
raise
|
43
47
|
rescue SystemExit, Errno::EPIPE
|
44
48
|
# Don't print a message for safe exits.
|
@@ -50,54 +54,54 @@ module AcquiaToolbelt
|
|
50
54
|
|
51
55
|
# Define some options that are available to all commands.
|
52
56
|
class_option :subscription, :type => :string, :aliases => %w(-s),
|
53
|
-
:desc =>
|
57
|
+
:desc => 'Name of a subscription you would like to target.'
|
54
58
|
class_option :environment, :type => :string, :aliases => %w(-e),
|
55
|
-
:desc =>
|
59
|
+
:desc => 'Environment to target for commands.'
|
56
60
|
class_option :verbose, :type => :boolean, :aliases => %w(-v),
|
57
|
-
:desc =>
|
61
|
+
:desc => 'Increase the verbose output from the commands.'
|
58
62
|
|
59
63
|
# Authentication.
|
60
|
-
desc
|
61
|
-
subcommand
|
64
|
+
desc 'auth', ''
|
65
|
+
subcommand 'auth', AcquiaToolbelt::CLI::Auth
|
62
66
|
|
63
67
|
# Databases.
|
64
|
-
desc
|
65
|
-
subcommand
|
68
|
+
desc 'databases', ''
|
69
|
+
subcommand 'databases', AcquiaToolbelt::CLI::Databases
|
66
70
|
|
67
71
|
# Servers.
|
68
|
-
desc
|
69
|
-
subcommand
|
72
|
+
desc 'servers', ''
|
73
|
+
subcommand 'servers', AcquiaToolbelt::CLI::Servers
|
70
74
|
|
71
75
|
# SSH.
|
72
|
-
desc
|
73
|
-
subcommand
|
76
|
+
desc 'ssh', ''
|
77
|
+
subcommand 'ssh', AcquiaToolbelt::CLI::SSH
|
74
78
|
|
75
79
|
# SVN.
|
76
|
-
desc
|
77
|
-
subcommand
|
80
|
+
desc 'svn', ''
|
81
|
+
subcommand 'svn', AcquiaToolbelt::CLI::SVN
|
78
82
|
|
79
83
|
# Tasks.
|
80
|
-
desc
|
81
|
-
subcommand
|
84
|
+
desc 'tasks', ''
|
85
|
+
subcommand 'tasks', AcquiaToolbelt::CLI::Tasks
|
82
86
|
|
83
87
|
# Sites.
|
84
|
-
desc
|
85
|
-
subcommand
|
88
|
+
desc 'sites', ''
|
89
|
+
subcommand 'sites', AcquiaToolbelt::CLI::Sites
|
86
90
|
|
87
91
|
# Domains.
|
88
|
-
desc
|
89
|
-
subcommand
|
92
|
+
desc 'domains', ''
|
93
|
+
subcommand 'domains', AcquiaToolbelt::CLI::Domains
|
90
94
|
|
91
95
|
# Deployments.
|
92
|
-
desc
|
93
|
-
subcommand
|
96
|
+
desc 'deploy', ''
|
97
|
+
subcommand 'deploy', AcquiaToolbelt::CLI::Deploy
|
94
98
|
|
95
99
|
# Files.
|
96
|
-
desc
|
97
|
-
subcommand
|
100
|
+
desc 'files', ''
|
101
|
+
subcommand 'files', AcquiaToolbelt::CLI::Files
|
98
102
|
|
99
103
|
# Environments.
|
100
|
-
desc
|
101
|
-
subcommand
|
104
|
+
desc 'environments', ''
|
105
|
+
subcommand 'environments', AcquiaToolbelt::CLI::Environments
|
102
106
|
end
|
103
107
|
end
|