#!/usr/bin/env bash set -eo pipefail [[ $DOKKU_TRACE ]] && set -x cmd-shell-default() { declare desc="dokku shell interpreter via command line" declare 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 *) dokku $line || true ;; esac done } cmd-shell-default