mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-05-01 04:30:37 +02:00
aptible plugin init
This commit is contained in:
parent
d2725d44fc
commit
fc50d39e0e
2 changed files with 220 additions and 0 deletions
211
plugins/aptible/_aptible
Normal file
211
plugins/aptible/_aptible
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
#compdef aptible
|
||||
|
||||
_aptible() {
|
||||
_arguments \
|
||||
'1: :_aptible_cmds' \
|
||||
'*:: :->args'
|
||||
|
||||
local -a sizes; sizes=(512 1024 2048 4096 8192 16384 32768 65536);
|
||||
case $state in
|
||||
args)
|
||||
case $words[1] in
|
||||
help)
|
||||
_arguments \
|
||||
'*: :_aptible_cmds'
|
||||
;;
|
||||
apps|db:list)
|
||||
_arguments \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs'
|
||||
;;
|
||||
apps:create)
|
||||
_arguments \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs'
|
||||
;;
|
||||
apps:deprovision|config*|ps|rebuild)
|
||||
_arguments \
|
||||
'--app=[APP]: :_aptible_apps' \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'(-r, --remote)'{-r,--remote}'[REMOTE]'
|
||||
;;
|
||||
apps:scale)
|
||||
_arguments \
|
||||
'--app=[APP]: :_aptible_apps' \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'(-r, --remote)'{-r,--remote}'[REMOTE]' \
|
||||
'--size=[N]: :{_describe "N" sizes}'
|
||||
;;
|
||||
backup:list)
|
||||
_arguments \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'--max-age=[MAX_AGE]' \
|
||||
':: :_aptible_dbs'
|
||||
;;
|
||||
backup:restore)
|
||||
_arguments \
|
||||
'--handle=[HANDLE]: :_aptible_dbs' \
|
||||
'--size=[N]: :{_describe "N" sizes}'
|
||||
;;
|
||||
db:backup|db:clone|db:deprovision|db:dump)
|
||||
_arguments \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
':: :_aptible_dbs'
|
||||
;;
|
||||
db:create)
|
||||
_arguments \
|
||||
'--type=[TYPE, Default\: postgresql]' \
|
||||
'--size=[N, Default\: 10]' \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs'
|
||||
;;
|
||||
db:execute)
|
||||
_arguments \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'1: :_aptible_dbs' \
|
||||
'2: :_files'
|
||||
;;
|
||||
db:tunnel)
|
||||
_arguments \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'--port=[N]'
|
||||
;;
|
||||
domains)
|
||||
_arguments \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'--app=[APP]: :_aptible_apps' \
|
||||
'(-r, --remote)'{-r,--remote}'[REMOTE]' \
|
||||
'(-v, --verbose)'{-v,--verbose}'[VERBOSE]'
|
||||
;;
|
||||
login)
|
||||
_arguments \
|
||||
'--email=[EMAIL]' \
|
||||
'--password=[PASSWORD]' \
|
||||
'--lifetime=[LIFETIME, e.g. 24h, 1d, 600s, etc]' \
|
||||
'--otp-token=[OTP_TOKEN, A token generated by your second-factor app]'
|
||||
;;
|
||||
logs)
|
||||
_arguments \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'--app=[APP]: :_aptible_apps' \
|
||||
'(-r, --remote)'{-r,--remote}'[REMOTE]' \
|
||||
'--database=[DATABASE]: :_aptible_dbs'
|
||||
;;
|
||||
restart)
|
||||
_arguments \
|
||||
"--simulate-oom=[Add this flag to simulate an OOM restart and test your app's response (not recommended on production apps)]" \
|
||||
"--force[Add this flag to use --simulate-oom in a production environment, which is not allowed by default]" \
|
||||
'--app=[APP]: :_aptible_apps' \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'(-r, --remote)'{-r,--remote}'[REMOTE]'
|
||||
;;
|
||||
ssh)
|
||||
_arguments \
|
||||
'--app=[APP]: :_aptible_apps' \
|
||||
'--environment=[ENVIRONMENT]: :_aptible_envs' \
|
||||
'(-r, --remote)'{-r,--remote}'[REMOTE]' \
|
||||
'--force-tty' \
|
||||
'--force-no-tty'
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
_aptible_dbs() {
|
||||
if [ -f "/tmp/aptible_dbs_zsh_cache" ]; then
|
||||
local cache_time=$(stat -c %Y "/tmp/aptible_dbs_zsh_cache")
|
||||
local expiration=$(date -d "now - 1 day" +%s)
|
||||
if [ $cache_time -gt $expiration ]; then
|
||||
local dbs; dbs=(
|
||||
$(cat "/tmp/aptible_dbs_zsh_cache")
|
||||
);
|
||||
_describe 'db' dbs
|
||||
else
|
||||
_fetch_aptible_dbs
|
||||
fi
|
||||
else
|
||||
_fetch_aptible_dbs
|
||||
fi
|
||||
}
|
||||
|
||||
_fetch_aptible_dbs() {
|
||||
aptible db:list | egrep -v "^=" > /tmp/aptible_dbs_zsh_cache
|
||||
_aptible_dbs
|
||||
}
|
||||
|
||||
_aptible_apps() {
|
||||
if [ -f "/tmp/aptible_apps_zsh_cache" ]; then
|
||||
local cache_time=$(stat -c %Y "/tmp/aptible_apps_zsh_cache")
|
||||
local expiration=$(date -d "now - 1 day" +%s)
|
||||
if [ $cache_time -gt $expiration ]; then
|
||||
local apps; apps=(
|
||||
$(cat "/tmp/aptible_apps_zsh_cache")
|
||||
);
|
||||
_describe 'app' apps
|
||||
else
|
||||
_fetch_aptible _aptible_apps
|
||||
fi
|
||||
else
|
||||
_fetch_aptible _aptible_apps
|
||||
fi
|
||||
}
|
||||
|
||||
_fetch_aptible() {
|
||||
local list=$(aptible apps)
|
||||
echo $list | egrep -v "^=" > /tmp/aptible_apps_zsh_cache
|
||||
echo $list | egrep "^=" | tr -d '=' > /tmp/aptible_envs_zsh_cache
|
||||
$1
|
||||
}
|
||||
|
||||
_aptible_envs() {
|
||||
if [ -f "/tmp/aptible_envs_zsh_cache" ]; then
|
||||
local cache_time=$(stat -c %Y "/tmp/aptible_envs_zsh_cache")
|
||||
local expiration=$(date -d "now - 1 day" +%s)
|
||||
if [ $cache_time -gt $expiration ]; then
|
||||
local apps; apps=(
|
||||
$(cat "/tmp/aptible_envs_zsh_cache")
|
||||
);
|
||||
_describe 'app' apps
|
||||
else
|
||||
_fetch_aptible _aptible_envs
|
||||
fi
|
||||
else
|
||||
_fetch_aptible _aptible_envs
|
||||
fi
|
||||
}
|
||||
|
||||
_aptible_cmds() {
|
||||
local -a commands; commands=(
|
||||
"apps:List all applications"
|
||||
"apps\:create:Create a new application"
|
||||
"apps\:deprovision:Deprovision an app"
|
||||
"apps\:scale:Scale app to NUMBER of instances"
|
||||
"backup\:list:List backups for a database"
|
||||
"backup\:restore:Restore a backup"
|
||||
"config:Print an app's current configuration"
|
||||
"config\:add:Add an ENV variable to an app"
|
||||
"config\:rm:Remove an ENV variable from an app"
|
||||
"config\:set:Alias for config:add"
|
||||
"config\:unset:Alias for config:rm"
|
||||
"db\:backup:Backup a database"
|
||||
"db\:clone:Clone a database to create a new one"
|
||||
"db\:create:Create a new database"
|
||||
"db\:deprovision:Deprovision a database"
|
||||
"db\:dump:Dump a remote database to file"
|
||||
"db\:execute:Executes sql against a database"
|
||||
"db\:list:List all databases"
|
||||
"db\:tunnel:Create a local tunnel to a database"
|
||||
"domains:Print an app's current virtual domains"
|
||||
"help:Describe available commands or one specific command"
|
||||
"login:Log in to Aptible"
|
||||
"logs:Follows logs from a running app or database"
|
||||
"operation\:cancel:Cancel a running operation"
|
||||
"ps:Display running processes for an app - DEPRECATED"
|
||||
"rebuild:Rebuild an app, and restart its services"
|
||||
"restart:Restart all services associated with an app"
|
||||
"ssh:Run a command against an app"
|
||||
"version:Print Aptible CLI version"
|
||||
);
|
||||
|
||||
_describe 'command' commands
|
||||
}
|
||||
|
||||
_aptible
|
||||
9
plugins/aptible/aptible.plugin.zsh
Normal file
9
plugins/aptible/aptible.plugin.zsh
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
# Authors:
|
||||
# https://github.com/Frederick888
|
||||
#
|
||||
# Aptible CLI oh-my-zsh Plugin
|
||||
|
||||
# Aliases ###################################################################
|
||||
|
||||
alias 'aptible-zsh-clear'='rm -f /tmp/aptible_dbs_zsh_cache /tmp/aptible_envs_zsh_cache /tmp/aptible_apps_zsh_cache'
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue