|
| 1 | +#compdef heroku |
| 2 | + |
| 3 | +# Heroku Autocomplete plugin for Oh-My-Zsh |
| 4 | +# Requires: The Heroku client gem (https://github.com/heroku/heroku) |
| 5 | +# Author: Ali B. (http://awhitebox.com) |
| 6 | + |
| 7 | +local -a _1st_arguments |
| 8 | +_1st_arguments=( |
| 9 | + "account\:confirm_billing":"Confirm that your account can be billed at the end of the month" |
| 10 | + "addons":"list installed addons" |
| 11 | + "addons\:list":"list all available addons" |
| 12 | + "addons\:add":"install an addon" |
| 13 | + "addons\:upgrade":"upgrade an existing addon" |
| 14 | + "addons\:downgrade":"downgrade an existing addon" |
| 15 | + "addons\:remove":"uninstall an addon" |
| 16 | + "addons\:open":"open an addon's dashboard in your browser" |
| 17 | + "apps":"list your apps" |
| 18 | + "apps\:info":"show detailed app information" |
| 19 | + "apps\:create":"create a new app" |
| 20 | + "apps\:rename":"rename the app" |
| 21 | + "apps\:open":"open the app in a web browser" |
| 22 | + "apps\:destroy":"permanently destroy an app" |
| 23 | + "auth\:login":"log in with your heroku credentials" |
| 24 | + "auth\:logout":"clear local authentication credentials" |
| 25 | + "config":"display the config vars for an app" |
| 26 | + "config\:add":"add one or more config vars" |
| 27 | + "config\:remove":"remove a config var" |
| 28 | + "db\:push":"push local data up to your app" |
| 29 | + "db\:pull":"pull heroku data down into your local database" |
| 30 | + "domains":"list custom domains for an app" |
| 31 | + "domains\:add":"add a custom domain to an app" |
| 32 | + "domains\:remove":"remove a custom domain from an app" |
| 33 | + "domains\:clear":"remove all custom domains from an app" |
| 34 | + "help":"list available commands or display help for a specific command" |
| 35 | + "keys":"display keys for the current user" |
| 36 | + "keys\:add":"add a key for the current user" |
| 37 | + "keys\:remove":"remove a key from the current user" |
| 38 | + "keys\:clear":"remove all authentication keys from the current user" |
| 39 | + "logs":"display recent log output" |
| 40 | + "logs\:cron":"DEPRECATED: display cron logs from legacy logging" |
| 41 | + "logs\:drains":"manage syslog drains" |
| 42 | + "maintenance\:on":"put the app into maintenance mode" |
| 43 | + "maintenance\:off":"take the app out of maintenance mode" |
| 44 | + "pg\:info":"display database information" |
| 45 | + "pg\:ingress":"allow direct connections to the database from this IP for one minute" |
| 46 | + "pg\:promote":"sets DATABASE as your DATABASE_URL" |
| 47 | + "pg\:psql":"open a psql shell to the database" |
| 48 | + "pg\:reset":"delete all data in DATABASE" |
| 49 | + "pg\:unfollow":"stop a replica from following and make it a read/write database" |
| 50 | + "pg\:wait":"monitor database creation, exit when complete" |
| 51 | + "pgbackups":"list captured backups" |
| 52 | + "pgbackups\:url":"get a temporary URL for a backup" |
| 53 | + "pgbackups\:capture":"capture a backup from a database id" |
| 54 | + "pgbackups\:restore":"restore a backup to a database" |
| 55 | + "pgbackups\:destroy":"destroys a backup" |
| 56 | + "plugins":"list installed plugins" |
| 57 | + "plugins\:install":"install a plugin" |
| 58 | + "plugins\:uninstall":"uninstall a plugin" |
| 59 | + "ps\:dynos":"scale to QTY web processes" |
| 60 | + "ps\:workers":"scale to QTY background processes" |
| 61 | + "ps":"list processes for an app" |
| 62 | + "ps\:restart":"restart an app process" |
| 63 | + "ps\:scale":"scale processes by the given amount" |
| 64 | + "releases":"list releases" |
| 65 | + "releases\:info":"view detailed information for a release" |
| 66 | + "rollback":"roll back to an older release" |
| 67 | + "run":"run an attached process" |
| 68 | + "run\:rake":"remotely execute a rake command" |
| 69 | + "run\:console":"open a remote console session" |
| 70 | + "sharing":"list collaborators on an app" |
| 71 | + "sharing\:add":"add a collaborator to an app" |
| 72 | + "sharing\:remove":"remove a collaborator from an app" |
| 73 | + "sharing\:transfer":"transfer an app to a new owner" |
| 74 | + "ssl":"list certificates for an app" |
| 75 | + "ssl\:add":"add an ssl certificate to an app" |
| 76 | + "ssl\:remove":"remove an ssl certificate from an app" |
| 77 | + "ssl\:clear":"remove all ssl certificates from an app" |
| 78 | + "stack":"show the list of available stacks" |
| 79 | + "stack\:migrate":"prepare migration of this app to a new stack" |
| 80 | + "version":"show heroku client version" |
| 81 | +) |
| 82 | + |
| 83 | +_arguments '*:: :->command' |
| 84 | + |
| 85 | +if (( CURRENT == 1 )); then |
| 86 | + _describe -t commands "heroku command" _1st_arguments |
| 87 | + return |
| 88 | +fi |
| 89 | + |
| 90 | +local -a _command_args |
| 91 | +case "$words[1]" in |
| 92 | + apps:info) |
| 93 | + _command_args=( |
| 94 | + '(-r|--raw)'{-r,--raw}'[output info as raw key/value pairs]' \ |
| 95 | + ) |
| 96 | + ;; |
| 97 | + apps:create) |
| 98 | + _command_args=( |
| 99 | + '(-a|--addons)'{-a,--addons}'[a list of addons to install]' \ |
| 100 | + '(-r|--remote)'{-r,--remote}'[the git remote to create, default "heroku"]' \ |
| 101 | + '(-s|--stack)'{-s,--stack}'[the stack on which to create the app]' \ |
| 102 | + ) |
| 103 | + ;; |
| 104 | + config) |
| 105 | + _command_args=( |
| 106 | + '(-s|--shell)'{-s,--shell}'[output config vars in shell format]' \ |
| 107 | + ) |
| 108 | + ;; |
| 109 | + db:push) |
| 110 | + _command_args=( |
| 111 | + '(-c|--chunksize)'{-c,--chunksize}'[specify the number of rows to send in each batch]' \ |
| 112 | + '(-d|--debug)'{-d,--debug}'[enable debugging output]' \ |
| 113 | + '(-e|--exclude)'{-e,--exclude}'[exclude the specified tables from the push]' \ |
| 114 | + '(-f|--filter)'{-f,--filter}'[only push certain tables]' \ |
| 115 | + '(-r|--resume)'{-r,--resume}'[resume transfer described by a .dat file]' \ |
| 116 | + '(-t|--tables)'{-t,--tables}'[only push the specified tables]' \ |
| 117 | + ) |
| 118 | + ;; |
| 119 | + db:pull) |
| 120 | + _command_args=( |
| 121 | + '(-c|--chunksize)'{-c,--chunksize}'[specify the number of rows to send in each batch]' \ |
| 122 | + '(-d|--debug)'{-d,--debug}'[enable debugging output]' \ |
| 123 | + '(-e|--exclude)'{-e,--exclude}'[exclude the specified tables from the pull]' \ |
| 124 | + '(-f|--filter)'{-f,--filter}'[only pull certain tables]' \ |
| 125 | + '(-r|--resume)'{-r,--resume}'[resume transfer described by a .dat file]' \ |
| 126 | + '(-t|--tables)'{-t,--tables}'[only pull the specified tables]' \ |
| 127 | + ) |
| 128 | + ;; |
| 129 | + keys) |
| 130 | + _command_args=( |
| 131 | + '(-l|--long)'{-l,--long}'[display extended information for each key]' \ |
| 132 | + ) |
| 133 | + ;; |
| 134 | + logs) |
| 135 | + _command_args=( |
| 136 | + '(-n|--num)'{-n,--num}'[the number of lines to display]' \ |
| 137 | + '(-p|--ps)'{-p,--ps}'[only display logs from the given process]' \ |
| 138 | + '(-s|--source)'{-s,--source}'[only display logs from the given source]' \ |
| 139 | + '(-t|--tail)'{-t,--tail}'[continually stream logs]' \ |
| 140 | + ) |
| 141 | + ;; |
| 142 | + pgbackups:capture) |
| 143 | + _command_args=( |
| 144 | + '(-e|--expire)'{-e,--expire}'[if no slots are available to capture, delete the oldest backup to make room]' \ |
| 145 | + ) |
| 146 | + ;; |
| 147 | + stack) |
| 148 | + _command_args=( |
| 149 | + '(-a|--all)'{-a,--all}'[include deprecated stacks]' \ |
| 150 | + ) |
| 151 | + ;; |
| 152 | + esac |
| 153 | + |
| 154 | +_arguments \ |
| 155 | + $_command_args \ |
| 156 | + '(--app)--app[the app name]' \ |
| 157 | + && return 0 |
| 158 | + |
0 commit comments