Class: Azuki::Command::Releases
- Defined in:
- lib/azuki/command/releases.rb
Overview
manage app releases
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#index ⇒ Object
releases.
-
#info ⇒ Object
releases:info RELEASE.
-
#rollback ⇒ Object
releases:rollback [RELEASE].
Methods inherited from Base
#api, #app, #azuki, #initialize, namespace
Methods included from Helpers
#action, #ask, #confirm, #confirm_billing, #confirm_command, #create_git_remote, #deprecate, #display, #display_header, #display_object, #display_row, #display_table, #error, error_with_failure, error_with_failure=, extended, extended_into, #fail, #format_bytes, #format_date, #format_error, #format_with_bang, #get_terminal_environment, #git, #has_git?, #home_directory, #hprint, #hputs, included, included_into, #json_decode, #json_encode, #launchy, #line_formatter, #longest, #output_with_bang, #quantify, #redisplay, #retry_on_exception, #run_command, #running_on_a_mac?, #running_on_windows?, #set_buffer, #shell, #spinner, #status, #string_distance, #styled_array, #styled_error, #styled_hash, #styled_header, #suggestion, #time_ago, #truncate, #with_tty
Constructor Details
This class inherits a constructor from Azuki::Command::Base
Instance Method Details
#index ⇒ Object
releases
list releases
Example:
$ azuki releases
example Releases
v1 Config add FOO_BAR by [email protected] 0s ago v2 Config add BAR_BAZ by [email protected] 0s ago v3 Config add BAZ_QUX by [email protected] 0s ago
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/azuki/command/releases.rb', line 19 def index validate_arguments! releases_data = api.get_releases(app).body.sort_by do |release| release["name"][1..-1].to_i end.reverse.slice(0, 15) unless releases_data.empty? releases = releases_data.map do |release| [ release["name"], truncate(release["descr"], 40), release["user"], time_ago(release['created_at']) ] end styled_header("#{app} Releases") styled_array(releases, :sort => false) else display("#{app} has no releases.") end end |
#info ⇒ Object
releases:info RELEASE
view detailed information for a release find latest release details by passing ‘current’ as the release
-s, –shell # output config vars in shell format
Example:
$ azuki releases:info v10
Release v10
Addons: deployhooks:http By: [email protected] Change: deploy ABCDEFG When: 2012-01-01 12:00:00
v10 Config Vars
EXAMPLE: foo
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/azuki/command/releases.rb', line 62 def info unless release = shift_argument error("Usage: azuki releases:info RELEASE") end validate_arguments! release_data = api.get_release(app, release).body data = { 'By' => release_data['user'], 'Change' => release_data['descr'], 'When' => time_ago(release_data["created_at"]) } unless release_data['addons'].empty? data['Addons'] = release_data['addons'] end styled_header("Release #{release}") styled_hash(data) display styled_header("#{release} Config Vars") unless release_data['env'].empty? if [:shell] release_data['env'].keys.sort.each do |key| display("#{key}=#{release_data['env'][key]}") end else styled_hash(release_data['env']) end else display("#{release} has no config vars.") end end |
#rollback ⇒ Object
releases:rollback [RELEASE]
roll back to an older release
if RELEASE is not specified, will roll back one step
Example:
$ azuki releases:rollback Rolling back example… done, v122
$ azuki releases:rollback v42 Rolling back example to v42… done
113 114 115 116 117 118 119 120 |
# File 'lib/azuki/command/releases.rb', line 113 def rollback release = shift_argument validate_arguments! action("Rolling back #{app}") do status(api.post_release(app, release).body) end end |