Make feature defaults depend on existence of respective binaries.

master
Icedream 2018-02-18 23:02:46 +01:00
parent 1d75fdd1c4
commit ae37c9ed53
Signed by: icedream
GPG Key ID: 1573F6D8EFE4D0CF
1 changed files with 35 additions and 20 deletions

View File

@ -3,26 +3,6 @@
# just for this profile code
PROFILE_DEBUG="${PROFILE_DEBUG:-0}"
# features
PROFILE_ALIAS=${PROFILE_ALIAS:-1}
PROFILE_BIN=${PROFILE_BIN:-1}
PROFILE_DEFAULT_TERM=${PROFILE_DEFAULT_TERM:-1}
PROFILE_GO=${PROFILE_GO:-1}
PROFILE_GPG_PINENTRY_FIX=${PROFILE_GPG_PINENTRY_FIX:-1}
PROFILE_IBUS=${PROFILE_IBUS:-1}
PROFILE_KEYCHAIN=${PROFILE_KEYCHAIN:-0}
PROFILE_NANO=${PROFILE_NANO:-1}
PROFILE_NANO_EXPLICIT_WIDE=${PROFILE_NANO_EXPLICIT_WIDE:-0}
PROFILE_NO_BEEPS=${PROFILE_NO_BEEPS:-1}
PROFILE_NODE=${PROFILE_NODE:-1}
PROFILE_PRINT_REBOOT_REQUIRED=${PROFILE_PRINT_REBOOT_REQUIRED:-0} # hacky, see below
PROFILE_RUBY=${PROFILE_RUBY:-1}
PROFILE_RUST=${PROFILE_RUST:-1}
PROFILE_SSH_AGENT=${PROFILE_SSH_AGENT:-1}
PROFILE_SYSTEMD=${PROFILE_SYSTEMD:-1}
PROFILE_THEFUCK=${PROFILE_THEFUCK:-1}
PROFILE_YARN=${PROFILE_YARN:-1}
##############################################################################
# Profile helper code from here
@ -32,6 +12,19 @@ PROFILE_DEBUG_SECTION_END_TEXT="/"
DEBUG_INDENT=0
when_binary_available() {
if has_binary "$@"; then
printf '1'
return
fi
printf '0'
return
}
has_binary() {
command -v "$@" >/dev/null 2>&1
}
section() {
if [ $PROFILE_DEBUG -gt 0 ]; then
echo "${PROFILE_DEBUG_SECTION_START_PREFIX}$(tput smso)$*$(tput rmso)"
@ -60,6 +53,28 @@ log() {
fi
}
##############################################################################
# Profile tweaks and features
PROFILE_ALIAS=${PROFILE_ALIAS:-1}
PROFILE_BIN=${PROFILE_BIN:-1}
PROFILE_DEFAULT_TERM=${PROFILE_DEFAULT_TERM:-1}
PROFILE_GO=${PROFILE_GO:-$(when_binary_available go)}
PROFILE_GPG_PINENTRY_FIX=${PROFILE_GPG_PINENTRY_FIX:-1}
PROFILE_IBUS=${PROFILE_IBUS:-$(when_binary_available ibus)}
PROFILE_KEYCHAIN=${PROFILE_KEYCHAIN:-$(when_binary_available keychain)}
PROFILE_NANO=${PROFILE_NANO:-$(when_binary_available nano)}
PROFILE_NANO_EXPLICIT_WIDE=${PROFILE_NANO_EXPLICIT_WIDE:-0}
PROFILE_NO_BEEPS=${PROFILE_NO_BEEPS:-$(when_binary_available xset)}
PROFILE_NODE=${PROFILE_NODE:-$(when_binary_available node)}
PROFILE_PRINT_REBOOT_REQUIRED=${PROFILE_PRINT_REBOOT_REQUIRED:-0} # hacky, see below
PROFILE_RUBY=${PROFILE_RUBY:-$(when_binary_available ruby)}
PROFILE_RUST=${PROFILE_RUST:-$(when_binary_available rust)}
PROFILE_SSH_AGENT=${PROFILE_SSH_AGENT:-$(when_binary_available ssh-agent)}
PROFILE_SYSTEMD=${PROFILE_SYSTEMD:-$(when_binary_available systemctl)}
PROFILE_THEFUCK=${PROFILE_THEFUCK:-$(when_binary_available thefuck)}
PROFILE_YARN=${PROFILE_YARN:-$(when_binary_available yarn)}
##############################################################################
# Actual profile code from here