Files
dokku/plugins/shell/subcommands/default
Jose Diaz-Gonzalez 86795ddacc tests: run mvdan/shfmt on test runs
While I do not agree with _every_ style change, this will force Dokku to have consistent formatting across all shell scripts, which is arguably a Good Thing™.

The command used to reprocess everything is:

```shell
shfmt -l -bn -ci -i 2 -w .
```
2019-01-07 01:25:55 -05:00

56 lines
960 B
Bash
Executable File

#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
shell_cmd() {
declare desc="dokku shell interpreter via command line"
local cmd="shell"
local INPUTRC="$PLUGIN_ROOT/inputrc"
local HISTFILE=~/.dokku_history
history -r || true
trim() {
sed -e 's/^[[:space:]]*//g' -e 's/[[:space:]]*$//g'
}
trap 'history -w' EXIT
while true; do
trap '' SIGINT
read -rep "dokku> " line || {
echo
true
break
}
trap - SIGINT
local line=$(echo "$line" | trim)
local CMD=$(echo "$line" | awk '{ print $1 }')
[[ -z $CMD ]] && continue
[[ "$line" != "$(fc -ln -1 | trim)" ]] && history -s "$line"
case $CMD in
# shell builtins
clear)
clear
;;
quit | exit)
break
;;
# Not a built-in, run as regular dokku command
*)
# shellcheck disable=SC2086
dokku $line || true
;;
esac
done
}
shell_cmd