Browse code

Merge pull request #543 from dmondark/heroku-completion

Heroku completion plugin

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