If there is no TTY, also skip verbose sudo messages

This commit is contained in:
Graham Christensen
2017-07-13 19:03:35 -04:00
parent ce2281e6d8
commit 12f6bb33d2
2 changed files with 34 additions and 3 deletions

View File

@@ -49,6 +49,14 @@ else
readonly IS_HEADLESS='yes'
fi
headless() {
if [ "$IS_HEADLESS" = "yes" ]; then
return 0
else
return 1
fi
}
contactme() {
echo "We'd love to help if you need it."
echo ""
@@ -179,7 +187,7 @@ failure() {
ui_confirm() {
_textout "$GREEN$GREEN_UL" "$1"
if [ "$IS_HEADLESS" = "yes" ]; then
if headless; then
echo "No TTY, assuming you would say yes :)"
return 0
fi
@@ -221,9 +229,10 @@ __sudo() {
_sudo() {
local expl="$1"
shift
if __sudo "$expl" "$*"; then
sudo "$@"
if ! headless; then
__sudo "$expl" "$*"
fi
sudo "$@"
}
@@ -620,6 +629,27 @@ EOF
chat_about_sudo() {
header "let's talk about sudo"
if headless; then
cat <<EOF
This script is going to call sudo a lot. Normally, it would show you
exactly what commands it is running and why. However, the script is
run in a headless fashion, like this:
$ curl https://nixos.org/nix/install | sh
or maybe in a CI pipeline. Because of that, we're going to skip the
verbose output in the interest of brevity.
If you would like to
see the output, try like this:
$ curl -o install-nix https://nixos.org/nix/install
$ sh ./install-nix
EOF
return 0
fi
cat <<EOF
This script is going to call sudo a lot. Every time we do, it'll
output exactly what it'll do, and why.