acquia_toolbelt 2.3.1 → 2.3.2
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/.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
|