Delete `.shellcheckrc` (#1947)
* CI: disable Ubuntu 16.04 as it's EOL https://github.blog/changelog/2021-04-29-github-actions-ubuntu-16-04-lts-virtual-environment-will-be-removed-on-september-20-2021/ * main: lint false positive * install: lint * plugins/cmd-returned-notify: don't `export` * plugins/xterm: lint * plugins/git: lint * plugins/goenv: lint * plugins/alias-completion: lint false positives * plugins/alias-completion: fix SC2155, SC2154 Declare `locals` at the top of the function * completion: lint completions using `bash_completion` functions Match the style of the existing code * completion/knife: lint false positives * completion/knife: lint * completion/sdkman: lint * completion/composer: lint * Move `.shellcheckrc` under `themes/` * lib/theme: fix SC2155, SC2154, SC2034 * lib/colors: don't warn on unused variables We assign a large number of variables here and they may or may not be used anywhere else, so disable SC2034 for this file (only). Alsö disable SC2005 as the functions in this file were written before `printf` was invented and have to do some fancy metascripting to get escape sequences interpreted reliably. I’m not smart enough to fix this to use `printf`, so leave it for now. * themes/agnoster: lint * themes: disable SC2154 for colors Each one of these themes will need it’s own fix for SC2154, possibly upstream. Due to the way themes are, it's entirely normal to have a *lot* of false positives for SC2034. So much so, that I have to admit that it is probably just not worth linting for SC2034 despite my dislike of blanket ignore rules. * themes: disable SC2154, fix SC2155 Each one of these themes will need it’s own fix for SC2154, possibly upstream. Due to the way themes are, it's entirely normal to have a *lot* of false positives for SC2034. So much so, that I have to admit that it is probably just not worth linting for SC2034 despite my dislike of blanket ignore rules. * Delete `.shellcheckrc` * remove executable bitpull/1935/head
parent
b48f3fd7d3
commit
1c3cbf7ca6
|
|
@ -11,7 +11,7 @@ jobs:
|
||||||
bats-test:
|
bats-test:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04, macos-10.15, macos-11.0]
|
os: [ubuntu-20.04, ubuntu-18.04, macos-10.15, macos-11.0]
|
||||||
|
|
||||||
runs-on: ${{ matrix.os }}
|
runs-on: ${{ matrix.os }}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
# We use colors and not assigned
|
|
||||||
disable=SC2154
|
|
||||||
# Hard to fix
|
|
||||||
disable=SC2155
|
|
||||||
# shellcheck is wrong on some
|
|
||||||
disable=SC2034
|
|
||||||
|
|
@ -114,6 +114,7 @@ for _bash_it_config_file in $CUSTOM; do
|
||||||
if [ -e "${_bash_it_config_file}" ]; then
|
if [ -e "${_bash_it_config_file}" ]; then
|
||||||
filename=$(basename "${_bash_it_config_file}")
|
filename=$(basename "${_bash_it_config_file}")
|
||||||
filename=${filename%*.bash}
|
filename=${filename%*.bash}
|
||||||
|
# shellcheck disable=SC2034
|
||||||
BASH_IT_LOG_PREFIX="custom: $filename: "
|
BASH_IT_LOG_PREFIX="custom: $filename: "
|
||||||
_log_debug "Loading custom file..."
|
_log_debug "Loading custom file..."
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1090
|
||||||
|
|
@ -122,7 +123,7 @@ for _bash_it_config_file in $CUSTOM; do
|
||||||
done
|
done
|
||||||
|
|
||||||
unset _bash_it_config_file
|
unset _bash_it_config_file
|
||||||
if [[ "${PROMPT:-}" ]]; then
|
if [[ -n "${PROMPT:-}" ]]; then
|
||||||
export PS1="\[""$PROMPT""\]"
|
export PS1="\[""$PROMPT""\]"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,14 @@ cite "about-completion"
|
||||||
about-completion "composer completion"
|
about-completion "composer completion"
|
||||||
|
|
||||||
function __composer_completion() {
|
function __composer_completion() {
|
||||||
local cur coms opts com
|
local cur coms opts com words
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
_get_comp_words_by_ref -n : cur words
|
_get_comp_words_by_ref -n : cur words
|
||||||
|
|
||||||
# lookup for command
|
# lookup for command
|
||||||
for word in "${words[@]:1}"; do
|
for word in "${words[@]:1}"; do
|
||||||
if [[ $word != -* ]]; then
|
if [[ "${word}" != -* ]]; then
|
||||||
com=$word
|
com="${word}"
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
@ -19,7 +19,7 @@ function __composer_completion() {
|
||||||
if [[ ${cur} == --* ]]; then
|
if [[ ${cur} == --* ]]; then
|
||||||
opts="--help --quiet --verbose --version --ansi --no-ansi --no-interaction --profile --no-plugins --working-dir"
|
opts="--help --quiet --verbose --version --ansi --no-ansi --no-interaction --profile --no-plugins --working-dir"
|
||||||
|
|
||||||
case "$com" in
|
case "${com}" in
|
||||||
about)
|
about)
|
||||||
opts="${opts} "
|
opts="${opts} "
|
||||||
;;
|
;;
|
||||||
|
|
@ -109,18 +109,18 @@ function __composer_completion() {
|
||||||
|
|
||||||
# shellcheck disable=SC2207
|
# shellcheck disable=SC2207
|
||||||
COMPREPLY=($(compgen -W "${opts}" -- "${cur}"))
|
COMPREPLY=($(compgen -W "${opts}" -- "${cur}"))
|
||||||
__ltrim_colon_completions "$cur"
|
__ltrim_colon_completions "${cur}"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# completing for a command
|
# completing for a command
|
||||||
if [[ "$cur" == "$com" ]]; then
|
if [[ "${cur}" == "${com}" ]]; then
|
||||||
coms="about archive browse clear-cache config create-project depends diagnose dump-autoload exec global help init install licenses list outdated prohibits remove require run-script search self-update show status suggests update validate"
|
coms="about archive browse clear-cache config create-project depends diagnose dump-autoload exec global help init install licenses list outdated prohibits remove require run-script search self-update show status suggests update validate"
|
||||||
|
|
||||||
# shellcheck disable=SC2207
|
# shellcheck disable=SC2207
|
||||||
COMPREPLY=($(compgen -W "${coms}" -- "${cur}"))
|
COMPREPLY=($(compgen -W "${coms}" -- "${cur}"))
|
||||||
__ltrim_colon_completions "$cur"
|
__ltrim_colon_completions "${cur}"
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
|
||||||
__dart_completion() {
|
__dart_completion() {
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local prev=$(_get_pword)
|
local prev=$(_get_pword)
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local curr=$(_get_cword)
|
local curr=$(_get_cword)
|
||||||
|
|
||||||
local HELP="--help -h"
|
local HELP="--help -h"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
|
||||||
function __dmidecode_completion() {
|
function __dmidecode_completion() {
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local prev=$(_get_pword)
|
local prev=$(_get_pword)
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local curr=$(_get_cword)
|
local curr=$(_get_cword)
|
||||||
|
|
||||||
case $prev in
|
case $prev in
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,7 @@ _KAC_is_file_newer_than() {
|
||||||
_KAC_regen_cache() {
|
_KAC_regen_cache() {
|
||||||
local CACHE_NAME=$1
|
local CACHE_NAME=$1
|
||||||
local CACHE_PATH="$_KNIFE_AUTOCOMPLETE_CACHE_DIR/$CACHE_NAME"
|
local CACHE_PATH="$_KNIFE_AUTOCOMPLETE_CACHE_DIR/$CACHE_NAME"
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local TMP_FILE=$(mktemp "$_KAC_CACHE_TMP_DIR/$CACHE_NAME.XXXX")
|
local TMP_FILE=$(mktemp "$_KAC_CACHE_TMP_DIR/$CACHE_NAME.XXXX")
|
||||||
shift 1
|
shift 1
|
||||||
# discard the temp file if it's empty AND the previous command didn't exit successfully, but still mark the cache as updated
|
# discard the temp file if it's empty AND the previous command didn't exit successfully, but still mark the cache as updated
|
||||||
|
|
@ -66,6 +67,7 @@ _KAC_get_command_from_cache_name() {
|
||||||
# otherwise it waits for the cache to be generated
|
# otherwise it waits for the cache to be generated
|
||||||
# in either case, it regenerates the cache, and sets the _KAC_CACHE_PATH env variable
|
# in either case, it regenerates the cache, and sets the _KAC_CACHE_PATH env variable
|
||||||
# for obvious reason, do NOT call that in a sub-shell (in particular, no piping)
|
# for obvious reason, do NOT call that in a sub-shell (in particular, no piping)
|
||||||
|
# shellcheck disable=SC2155
|
||||||
_KAC_get_and_regen_cache() {
|
_KAC_get_and_regen_cache() {
|
||||||
# the cache name can't have space in it
|
# the cache name can't have space in it
|
||||||
local CACHE_NAME=$(_KAC_get_cache_name_from_command "$@")
|
local CACHE_NAME=$(_KAC_get_cache_name_from_command "$@")
|
||||||
|
|
@ -100,7 +102,7 @@ _KAC_clean_cache() {
|
||||||
|
|
||||||
# perform a cache cleaning when loading this file
|
# perform a cache cleaning when loading this file
|
||||||
# On big systems this could baloon up to a 30 second run or more, so not enabling by default.
|
# On big systems this could baloon up to a 30 second run or more, so not enabling by default.
|
||||||
[[ "${KNIFE_CACHE_CLEAN}" ]] && _KAC_clean_cache
|
[[ -n "${KNIFE_CACHE_CLEAN}" ]] && _KAC_clean_cache
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
### End of cache helper functions ###
|
### End of cache helper functions ###
|
||||||
|
|
@ -118,7 +120,7 @@ _KAC_get_current_base_command() {
|
||||||
local PREVIOUS="knife"
|
local PREVIOUS="knife"
|
||||||
local I=1
|
local I=1
|
||||||
local CURRENT
|
local CURRENT
|
||||||
while [ $I -le "$COMP_CWORD" ]; do
|
while [[ "${I}" -le "${COMP_CWORD}" ]]; do
|
||||||
# command words are all lower-case
|
# command words are all lower-case
|
||||||
echo "${COMP_WORDS[$I]}" | grep -E "^[a-z]+$" > /dev/null || break
|
echo "${COMP_WORDS[$I]}" | grep -E "^[a-z]+$" > /dev/null || break
|
||||||
CURRENT="$PREVIOUS ${COMP_WORDS[$I]}"
|
CURRENT="$PREVIOUS ${COMP_WORDS[$I]}"
|
||||||
|
|
@ -127,12 +129,13 @@ _KAC_get_current_base_command() {
|
||||||
I=$((I + 1))
|
I=$((I + 1))
|
||||||
done
|
done
|
||||||
_KAC_CURRENT_COMMAND=$PREVIOUS
|
_KAC_CURRENT_COMMAND=$PREVIOUS
|
||||||
[ $I -le "$COMP_CWORD" ] && _KAC_CURRENT_COMMAND_NB_WORDS=$I
|
[[ "${I}" -le "${COMP_CWORD}" ]] && _KAC_CURRENT_COMMAND_NB_WORDS="${I}"
|
||||||
}
|
}
|
||||||
|
|
||||||
# searches the position of the currently completed argument in the current base command
|
# searches the position of the currently completed argument in the current base command
|
||||||
# (i.e. handles "plural" arguments such as knife cookbook upload cookbook1 cookbook2 and so on...)
|
# (i.e. handles "plural" arguments such as knife cookbook upload cookbook1 cookbook2 and so on...)
|
||||||
# assumes the current base command is complete
|
# assumes the current base command is complete
|
||||||
|
# shellcheck disable=SC2155
|
||||||
_KAC_get_current_arg_position() {
|
_KAC_get_current_arg_position() {
|
||||||
local CURRENT_ARG_POS=$((_KAC_CURRENT_COMMAND_NB_WORDS + 1))
|
local CURRENT_ARG_POS=$((_KAC_CURRENT_COMMAND_NB_WORDS + 1))
|
||||||
local COMPLETE_COMMAND=$(grep -E "^$_KAC_CURRENT_COMMAND" "$_KAC_CACHE_PATH")
|
local COMPLETE_COMMAND=$(grep -E "^$_KAC_CURRENT_COMMAND" "$_KAC_CACHE_PATH")
|
||||||
|
|
@ -150,10 +153,11 @@ _KAC_get_current_arg_position() {
|
||||||
_knife() {
|
_knife() {
|
||||||
_KAC_get_and_regen_cache _KAC_knife_commands
|
_KAC_get_and_regen_cache _KAC_knife_commands
|
||||||
local RAW_LIST ITEM REGEN_CMD ARG_POSITION
|
local RAW_LIST ITEM REGEN_CMD ARG_POSITION
|
||||||
|
# shellcheck disable=SC2034
|
||||||
COMREPLY=()
|
COMREPLY=()
|
||||||
# get correct command & arg pos
|
# get correct command & arg pos
|
||||||
_KAC_get_current_base_command && ARG_POSITION=$(_KAC_get_current_arg_position) || ARG_POSITION=$((COMP_CWORD + 1))
|
_KAC_get_current_base_command && ARG_POSITION=$(_KAC_get_current_arg_position) || ARG_POSITION=$((COMP_CWORD + 1))
|
||||||
RAW_LIST=$(grep -E "^$_KAC_CURRENT_COMMAND" "$_KAC_CACHE_PATH" | cut -d ' ' -f $ARG_POSITION | uniq)
|
RAW_LIST=$(grep -E "^${_KAC_CURRENT_COMMAND}" "${_KAC_CACHE_PATH}" | cut -d ' ' -f "${ARG_POSITION}" | uniq)
|
||||||
|
|
||||||
# we need to process that raw list a bit, most notably for placeholders
|
# we need to process that raw list a bit, most notably for placeholders
|
||||||
# NOTE: I chose to explicitely fetch & cache _certain_ informations for the server (cookbooks & node names, etc)
|
# NOTE: I chose to explicitely fetch & cache _certain_ informations for the server (cookbooks & node names, etc)
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
|
||||||
__ngrok_completion() {
|
__ngrok_completion() {
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local prev=$(_get_pword)
|
local prev=$(_get_pword)
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local curr=$(_get_cword)
|
local curr=$(_get_cword)
|
||||||
|
|
||||||
local BASE_NO_CONF="--log --log-format --log-level --help"
|
local BASE_NO_CONF="--log --log-format --log-level --help"
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
|
||||||
function __notify-send_completions() {
|
function __notify-send_completions() {
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local curr=$(_get_cword)
|
local curr=$(_get_cword)
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local prev=$(_get_pword)
|
local prev=$(_get_pword)
|
||||||
|
|
||||||
case $prev in
|
case $prev in
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
_sdkman_complete() {
|
|
||||||
|
function _sdkman_complete() {
|
||||||
local CANDIDATES
|
local CANDIDATES
|
||||||
local CANDIDATE_VERSIONS
|
local CANDIDATE_VERSIONS
|
||||||
|
local SDKMAN_CANDIDATES_CSV="${SDKMAN_CANDIDATES_CSV:-}"
|
||||||
|
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
|
|
||||||
|
|
@ -10,7 +12,7 @@ _sdkman_complete() {
|
||||||
elif [ "$COMP_CWORD" -eq 2 ]; then
|
elif [ "$COMP_CWORD" -eq 2 ]; then
|
||||||
case "${COMP_WORDS[COMP_CWORD - 1]}" in
|
case "${COMP_WORDS[COMP_CWORD - 1]}" in
|
||||||
"install" | "i" | "uninstall" | "rm" | "list" | "ls" | "use" | "u" | "default" | "d" | "home" | "h" | "current" | "c" | "upgrade" | "ug")
|
"install" | "i" | "uninstall" | "rm" | "list" | "ls" | "use" | "u" | "default" | "d" | "home" | "h" | "current" | "c" | "upgrade" | "ug")
|
||||||
CANDIDATES=$(echo "${SDKMAN_CANDIDATES_CSV}" | tr ',' ' ')
|
CANDIDATES="${SDKMAN_CANDIDATES_CSV//,/${IFS:0:1}}"
|
||||||
mapfile -t COMPREPLY < <(compgen -W "$CANDIDATES" -- "${COMP_WORDS[COMP_CWORD]}")
|
mapfile -t COMPREPLY < <(compgen -W "$CANDIDATES" -- "${COMP_WORDS[COMP_CWORD]}")
|
||||||
;;
|
;;
|
||||||
"env")
|
"env")
|
||||||
|
|
@ -46,17 +48,17 @@ _sdkman_complete() {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
_sdkman_candidate_local_versions() {
|
function _sdkman_candidate_local_versions() {
|
||||||
|
|
||||||
CANDIDATE_VERSIONS=$(__sdkman_cleanup_local_versions "$1")
|
CANDIDATE_VERSIONS=$(__sdkman_cleanup_local_versions "$1")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_sdkman_candidate_all_versions() {
|
function _sdkman_candidate_all_versions() {
|
||||||
|
|
||||||
candidate="$1"
|
candidate="$1"
|
||||||
CANDIDATE_LOCAL_VERSIONS=$(__sdkman_cleanup_local_versions "$candidate")
|
CANDIDATE_LOCAL_VERSIONS=$(__sdkman_cleanup_local_versions "$candidate")
|
||||||
if [ "$SDKMAN_OFFLINE_MODE" = "true" ]; then
|
if [[ "${SDKMAN_OFFLINE_MODE:-false}" == "true" ]]; then
|
||||||
CANDIDATE_VERSIONS=$CANDIDATE_LOCAL_VERSIONS
|
CANDIDATE_VERSIONS=$CANDIDATE_LOCAL_VERSIONS
|
||||||
else
|
else
|
||||||
# sdkman has a specific output format for Java candidate since
|
# sdkman has a specific output format for Java candidate since
|
||||||
|
|
@ -70,12 +72,12 @@ _sdkman_candidate_all_versions() {
|
||||||
# "+" - local version
|
# "+" - local version
|
||||||
# "*" - installed
|
# "*" - installed
|
||||||
# ">" - currently in use
|
# ">" - currently in use
|
||||||
CANDIDATE_VERSIONS="$(echo "$CANDIDATE_ONLINE_VERSIONS $CANDIDATE_LOCAL_VERSIONS" | tr ' ' '\n' | grep -v -e '^[[:space:]|\*|\>|\+]*$' | sort | uniq -u) "
|
CANDIDATE_VERSIONS="$(echo "$CANDIDATE_ONLINE_VERSIONS $CANDIDATE_LOCAL_VERSIONS" | tr ' ' '\n' | grep -v -e '^[[:space:]|\*|\>|\+]*$' | sort -u) "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__sdkman_cleanup_local_versions() {
|
function __sdkman_cleanup_local_versions() {
|
||||||
|
|
||||||
__sdkman_build_version_csv "$1" | tr ',' ' '
|
__sdkman_build_version_csv "$1" | tr ',' ' '
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
|
||||||
__vuejs_completion() {
|
__vuejs_completion() {
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local prev=$(_get_pword)
|
local prev=$(_get_pword)
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local curr=$(_get_cword)
|
local curr=$(_get_cword)
|
||||||
|
|
||||||
case $prev in
|
case $prev in
|
||||||
|
|
|
||||||
|
|
@ -18,4 +18,4 @@ for file in "$@"; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
exit $exit_code
|
exit "${exit_code:-0}"
|
||||||
|
|
|
||||||
|
|
@ -18,4 +18,4 @@ for file in "$@"; do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
exit $exit_code
|
exit "${exit_code:-0}"
|
||||||
|
|
|
||||||
28
install.sh
28
install.sh
|
|
@ -83,8 +83,8 @@ function _bash-it_check_for_backup() {
|
||||||
fi
|
fi
|
||||||
echo -e "\033[0;33mBackup file already exists. Make sure to backup your .bashrc before running this installation.\033[0m" >&2
|
echo -e "\033[0;33mBackup file already exists. Make sure to backup your .bashrc before running this installation.\033[0m" >&2
|
||||||
|
|
||||||
if ! [[ $overwrite_backup ]]; then
|
if [[ -z "${overwrite_backup}" ]]; then
|
||||||
while ! [[ $silent ]]; do
|
while [[ -z "${silent}" ]]; do
|
||||||
read -e -n 1 -r -p "Would you like to overwrite the existing backup? This will delete your existing backup file ($HOME/$BACKUP_FILE) [y/N] " RESP
|
read -e -n 1 -r -p "Would you like to overwrite the existing backup? This will delete your existing backup file ($HOME/$BACKUP_FILE) [y/N] " RESP
|
||||||
case $RESP in
|
case $RESP in
|
||||||
[yY])
|
[yY])
|
||||||
|
|
@ -100,9 +100,9 @@ function _bash-it_check_for_backup() {
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if ! [[ $overwrite_backup ]]; then
|
if [[ -z "${overwrite_backup}" ]]; then
|
||||||
echo -e "\033[91mInstallation aborted. Please come back soon!\033[m"
|
echo -e "\033[91mInstallation aborted. Please come back soon!\033[m"
|
||||||
if [[ $silent ]]; then
|
if [[ -n "${silent}" ]]; then
|
||||||
echo -e "\033[91mUse \"-f\" flag to force overwrite of backup.\033[m"
|
echo -e "\033[91mUse \"-f\" flag to force overwrite of backup.\033[m"
|
||||||
fi
|
fi
|
||||||
exit 1
|
exit 1
|
||||||
|
|
@ -114,8 +114,8 @@ function _bash-it_check_for_backup() {
|
||||||
function _bash-it_modify_config_files() {
|
function _bash-it_modify_config_files() {
|
||||||
_bash-it_check_for_backup
|
_bash-it_check_for_backup
|
||||||
|
|
||||||
if ! [[ $silent ]]; then
|
if [[ -z "${silent}" ]]; then
|
||||||
while ! [[ $append_to_config ]]; do
|
while [[ -z "${append_to_config}" ]]; do
|
||||||
read -e -n 1 -r -p "Would you like to keep your $CONFIG_FILE and append bash-it templates at the end? [y/N] " choice
|
read -e -n 1 -r -p "Would you like to keep your $CONFIG_FILE and append bash-it templates at the end? [y/N] " choice
|
||||||
case $choice in
|
case $choice in
|
||||||
[yY])
|
[yY])
|
||||||
|
|
@ -131,7 +131,7 @@ function _bash-it_modify_config_files() {
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
if [[ $append_to_config ]]; then
|
if [[ -n "${append_to_config}" ]]; then
|
||||||
# backup/append
|
# backup/append
|
||||||
_bash-it_backup_append
|
_bash-it_backup_append
|
||||||
else
|
else
|
||||||
|
|
@ -174,12 +174,12 @@ done
|
||||||
|
|
||||||
shift $((OPTIND - 1))
|
shift $((OPTIND - 1))
|
||||||
|
|
||||||
if [[ $silent ]] && [[ $interactive ]]; then
|
if [[ -n "${silent}" && -n "${interactive}" ]]; then
|
||||||
echo -e "\033[91mOptions --silent and --interactive are mutually exclusive. Please choose one or the other.\033[m"
|
echo -e "\033[91mOptions --silent and --interactive are mutually exclusive. Please choose one or the other.\033[m"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $no_modify_config ]] && [[ $append_to_config ]]; then
|
if [[ -n "${no_modify_config}" && -n "${append_to_config}" ]]; then
|
||||||
echo -e "\033[91mOptions --no-modify-config and --append-to-config are mutually exclusive. Please choose one or the other.\033[m"
|
echo -e "\033[91mOptions --no-modify-config and --append-to-config are mutually exclusive. Please choose one or the other.\033[m"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
@ -197,7 +197,7 @@ esac
|
||||||
|
|
||||||
BACKUP_FILE=$CONFIG_FILE.bak
|
BACKUP_FILE=$CONFIG_FILE.bak
|
||||||
echo "Installing bash-it"
|
echo "Installing bash-it"
|
||||||
if ! [[ $no_modify_config ]]; then
|
if [[ -z "${no_modify_config}" ]]; then
|
||||||
_bash-it_modify_config_files
|
_bash-it_modify_config_files
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -212,10 +212,10 @@ cite _about _param _example _group _author _version
|
||||||
# shellcheck source=./lib/helpers.bash
|
# shellcheck source=./lib/helpers.bash
|
||||||
source "$BASH_IT/lib/helpers.bash"
|
source "$BASH_IT/lib/helpers.bash"
|
||||||
|
|
||||||
if [[ $interactive ]] && ! [[ $silent ]]; then
|
if [[ -n $interactive && -z "${silent}" ]]; then
|
||||||
for type in "aliases" "plugins" "completion"; do
|
for type in "aliases" "plugins" "completion"; do
|
||||||
echo -e "\033[0;32mEnabling $type\033[0m"
|
echo -e "\033[0;32mEnabling ${type}\033[0m"
|
||||||
_bash-it_load_some $type
|
_bash-it_load_some "$type"
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo ""
|
echo ""
|
||||||
|
|
@ -230,7 +230,7 @@ fi
|
||||||
echo ""
|
echo ""
|
||||||
echo -e "\033[0;32mInstallation finished successfully! Enjoy bash-it!\033[0m"
|
echo -e "\033[0;32mInstallation finished successfully! Enjoy bash-it!\033[0m"
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
echo -e "\033[0;32mTo start using it, open a new tab or 'source "$HOME/$CONFIG_FILE"'.\033[0m"
|
echo -e "\033[0;32mTo start using it, open a new tab or 'source "~/$CONFIG_FILE"'.\033[0m"
|
||||||
echo ""
|
echo ""
|
||||||
echo "To show the available aliases/completions/plugins, type one of the following:"
|
echo "To show the available aliases/completions/plugins, type one of the following:"
|
||||||
echo " bash-it show aliases"
|
echo " bash-it show aliases"
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,8 @@ about-plugin 'Automatic completion of aliases'
|
||||||
# Automatically add completion for all aliases to commands having completion functions
|
# Automatically add completion for all aliases to commands having completion functions
|
||||||
function alias_completion {
|
function alias_completion {
|
||||||
local namespace="alias_completion"
|
local namespace="alias_completion"
|
||||||
|
local tmp_file completion_loader alias_name alias_tokens line completions
|
||||||
|
local alias_arg_words new_completion compl_func compl_wrapper
|
||||||
|
|
||||||
# parse function based completion definitions, where capture group 2 => function and 3 => trigger
|
# parse function based completion definitions, where capture group 2 => function and 3 => trigger
|
||||||
local compl_regex='complete( +[^ ]+)* -F ([^ ]+) ("[^"]+"|[^ ]+)'
|
local compl_regex='complete( +[^ ]+)* -F ([^ ]+) ("[^"]+"|[^ ]+)'
|
||||||
|
|
@ -26,28 +28,25 @@ function alias_completion {
|
||||||
local alias_regex="alias( -- | )([^=]+)='(\"[^\"]+\"|[^ ]+)(( +[^ ]+)*)'"
|
local alias_regex="alias( -- | )([^=]+)='(\"[^\"]+\"|[^ ]+)(( +[^ ]+)*)'"
|
||||||
|
|
||||||
# create array of function completion triggers, keeping multi-word triggers together
|
# create array of function completion triggers, keeping multi-word triggers together
|
||||||
eval "local completions=($(complete -p | sed -Ene "/$compl_regex/s//'\3'/p"))"
|
eval "completions=($(complete -p | sed -Ene "/$compl_regex/s//'\3'/p"))"
|
||||||
((${#completions[@]} == 0)) && return 0
|
((${#completions[@]} == 0)) && return 0
|
||||||
|
|
||||||
# create temporary file for wrapper functions and completions
|
# create temporary file for wrapper functions and completions
|
||||||
local tmp_file
|
|
||||||
tmp_file="$(mktemp -t "${namespace}-${RANDOM}XXXXXX")" || return 1
|
tmp_file="$(mktemp -t "${namespace}-${RANDOM}XXXXXX")" || return 1
|
||||||
|
|
||||||
local completion_loader
|
|
||||||
completion_loader="$(complete -p -D 2> /dev/null | sed -Ene 's/.* -F ([^ ]*).*/\1/p')"
|
completion_loader="$(complete -p -D 2> /dev/null | sed -Ene 's/.* -F ([^ ]*).*/\1/p')"
|
||||||
|
|
||||||
# read in "<alias> '<aliased command>' '<command args>'" lines from defined aliases
|
# read in "<alias> '<aliased command>' '<command args>'" lines from defined aliases
|
||||||
local line
|
|
||||||
|
|
||||||
# shellcheck disable=SC2162
|
|
||||||
# some aliases do have backslashes that needs to be interpreted
|
# some aliases do have backslashes that needs to be interpreted
|
||||||
|
# shellcheck disable=SC2162
|
||||||
while read line; do
|
while read line; do
|
||||||
eval "local alias_tokens; alias_tokens=($line)" 2> /dev/null || continue # some alias arg patterns cause an eval parse error
|
eval "alias_tokens=($line)" 2> /dev/null || continue # some alias arg patterns cause an eval parse error
|
||||||
local alias_name="${alias_tokens[0]}" alias_cmd="${alias_tokens[1]}" alias_args="${alias_tokens[2]# }"
|
# shellcheck disable=SC2154 # see `eval` above
|
||||||
|
alias_name="${alias_tokens[0]}" alias_cmd="${alias_tokens[1]}" alias_args="${alias_tokens[2]# }"
|
||||||
|
|
||||||
# skip aliases to pipes, boolean control structures and other command lists
|
# skip aliases to pipes, boolean control structures and other command lists
|
||||||
# (leveraging that eval errs out if $alias_args contains unquoted shell metacharacters)
|
# (leveraging that eval errs out if $alias_args contains unquoted shell metacharacters)
|
||||||
eval "local alias_arg_words; alias_arg_words=($alias_args)" 2> /dev/null || continue
|
eval "alias_arg_words=($alias_args)" 2> /dev/null || continue
|
||||||
# avoid expanding wildcards
|
# avoid expanding wildcards
|
||||||
read -a alias_arg_words <<< "$alias_args"
|
read -a alias_arg_words <<< "$alias_args"
|
||||||
|
|
||||||
|
|
@ -63,15 +62,15 @@ function alias_completion {
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
local new_completion="$(complete -p "$alias_cmd" 2> /dev/null)"
|
new_completion="$(complete -p "$alias_cmd" 2> /dev/null)"
|
||||||
|
|
||||||
# create a wrapper inserting the alias arguments if any
|
# create a wrapper inserting the alias arguments if any
|
||||||
if [[ -n $alias_args ]]; then
|
if [[ -n $alias_args ]]; then
|
||||||
local compl_func="${new_completion/#* -F /}"
|
compl_func="${new_completion/#* -F /}"
|
||||||
compl_func="${compl_func%% *}"
|
compl_func="${compl_func%% *}"
|
||||||
# avoid recursive call loops by ignoring our own functions
|
# avoid recursive call loops by ignoring our own functions
|
||||||
if [[ "${compl_func#_"$namespace"::}" == "$compl_func" ]]; then
|
if [[ "${compl_func#_"$namespace"::}" == "$compl_func" ]]; then
|
||||||
local compl_wrapper="_${namespace}::${alias_name}"
|
compl_wrapper="_${namespace}::${alias_name}"
|
||||||
echo "function $compl_wrapper {
|
echo "function $compl_wrapper {
|
||||||
local compl_word=\$2
|
local compl_word=\$2
|
||||||
local prec_word=\$3
|
local prec_word=\$3
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ precmd_return_notification() {
|
||||||
}
|
}
|
||||||
|
|
||||||
preexec_return_notification() {
|
preexec_return_notification() {
|
||||||
[ -z "${LAST_COMMAND_TIME}" ] && export LAST_COMMAND_TIME=$(date +%s)
|
[[ -z "${LAST_COMMAND_TIME}" ]] && LAST_COMMAND_TIME=$(date +%s)
|
||||||
}
|
}
|
||||||
|
|
||||||
precmd_functions+=(precmd_return_notification)
|
precmd_functions+=(precmd_return_notification)
|
||||||
|
|
|
||||||
|
|
@ -2,12 +2,13 @@
|
||||||
cite about-plugin
|
cite about-plugin
|
||||||
about-plugin 'git helper functions'
|
about-plugin 'git helper functions'
|
||||||
|
|
||||||
|
# shellcheck disable=SC2016
|
||||||
function git_remote {
|
function git_remote {
|
||||||
about "adds remote $GIT_HOSTING:$1 to current repo"
|
about 'adds remote $GIT_HOSTING:$1 to current repo'
|
||||||
group "git"
|
group "git"
|
||||||
|
|
||||||
echo "Running: git remote add origin ${GIT_HOSTING}:$1.git"
|
echo "Running: git remote add origin ${GIT_HOSTING:?}:$1.git"
|
||||||
git remote add origin "$GIT_HOSTING:$1".git
|
git remote add origin "${GIT_HOSTING}:${1}".git
|
||||||
}
|
}
|
||||||
|
|
||||||
function git_first_push {
|
function git_first_push {
|
||||||
|
|
@ -24,14 +25,14 @@ function git_pub() {
|
||||||
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
||||||
|
|
||||||
echo "Publishing ${BRANCH} to remote origin"
|
echo "Publishing ${BRANCH} to remote origin"
|
||||||
git push -u origin "$BRANCH"
|
git push -u origin "${BRANCH}"
|
||||||
}
|
}
|
||||||
|
|
||||||
function git_revert() {
|
function git_revert() {
|
||||||
about 'applies changes to HEAD that revert all changes after this commit'
|
about 'applies changes to HEAD that revert all changes after this commit'
|
||||||
group 'git'
|
group 'git'
|
||||||
|
|
||||||
git reset "$1"
|
git reset "${1:?}"
|
||||||
git reset --soft "HEAD@{1}"
|
git reset --soft "HEAD@{1}"
|
||||||
git commit -m "Revert to ${1}"
|
git commit -m "Revert to ${1}"
|
||||||
git reset --hard
|
git reset --hard
|
||||||
|
|
@ -49,9 +50,7 @@ function git_rollback() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function commit_exists() {
|
function commit_exists() {
|
||||||
git rev-list --quiet "$1"
|
if git rev-list --quiet "${1:?}"; then
|
||||||
status=$?
|
|
||||||
if [ $status -ne 0 ]; then
|
|
||||||
echo "Commit ${1} does not exist"
|
echo "Commit ${1} does not exist"
|
||||||
kill -INT $$
|
kill -INT $$
|
||||||
fi
|
fi
|
||||||
|
|
@ -61,7 +60,7 @@ function git_rollback() {
|
||||||
while true; do
|
while true; do
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p "Do you want to keep all changes from rolled back revisions in your working tree? [Y/N]" RESP
|
read -p "Do you want to keep all changes from rolled back revisions in your working tree? [Y/N]" RESP
|
||||||
case $RESP in
|
case "${RESP}" in
|
||||||
|
|
||||||
[yY])
|
[yY])
|
||||||
echo "Rolling back to commit ${1} with unstaged changes"
|
echo "Rolling back to commit ${1} with unstaged changes"
|
||||||
|
|
@ -87,7 +86,7 @@ function git_rollback() {
|
||||||
while true; do
|
while true; do
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
read -p "WARNING: This will change your history and move the current HEAD back to commit ${1}, continue? [Y/N]" RESP
|
read -p "WARNING: This will change your history and move the current HEAD back to commit ${1}, continue? [Y/N]" RESP
|
||||||
case $RESP in
|
case "${RESP}" in
|
||||||
|
|
||||||
[yY])
|
[yY])
|
||||||
keep_changes "$1"
|
keep_changes "$1"
|
||||||
|
|
@ -134,8 +133,8 @@ function git_info() {
|
||||||
|
|
||||||
# print all remotes and thier details
|
# print all remotes and thier details
|
||||||
for remote in $(git remote show); do
|
for remote in $(git remote show); do
|
||||||
echo "$remote":
|
echo "${remote}":
|
||||||
git remote show "$remote"
|
git remote show "${remote}"
|
||||||
echo
|
echo
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -172,32 +171,32 @@ function git_stats {
|
||||||
AUTHORS=$(git shortlog -sn --all | cut -f2 | cut -f1 -d' ')
|
AUTHORS=$(git shortlog -sn --all | cut -f2 | cut -f1 -d' ')
|
||||||
LOGOPTS=""
|
LOGOPTS=""
|
||||||
if [ "$1" == '-w' ]; then
|
if [ "$1" == '-w' ]; then
|
||||||
LOGOPTS="$LOGOPTS -w"
|
LOGOPTS="${LOGOPTS} -w"
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
if [ "$1" == '-M' ]; then
|
if [ "$1" == '-M' ]; then
|
||||||
LOGOPTS="$LOGOPTS -M"
|
LOGOPTS="${LOGOPTS} -M"
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
if [ "$1" == '-C' ]; then
|
if [ "$1" == '-C' ]; then
|
||||||
LOGOPTS="$LOGOPTS -C --find-copies-harder"
|
LOGOPTS="${LOGOPTS} -C --find-copies-harder"
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
for a in $AUTHORS; do
|
for a in ${AUTHORS}; do
|
||||||
echo '-------------------'
|
echo '-------------------'
|
||||||
echo "Statistics for: $a"
|
echo "Statistics for: ${a}"
|
||||||
echo -n "Number of files changed: "
|
echo -n "Number of files changed: "
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
git log $LOGOPTS --all --numstat --format="%n" --author="$a" | cut -f3 | sort -iu | wc -l
|
git log ${LOGOPTS} --all --numstat --format="%n" --author="${a}" | cut -f3 | sort -iu | wc -l
|
||||||
echo -n "Number of lines added: "
|
echo -n "Number of lines added: "
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
git log $LOGOPTS --all --numstat --format="%n" --author="$a" | cut -f1 | awk '{s+=$1} END {print s}'
|
git log ${LOGOPTS} --all --numstat --format="%n" --author="${a}" | cut -f1 | awk '{s+=$1} END {print s}'
|
||||||
echo -n "Number of lines deleted: "
|
echo -n "Number of lines deleted: "
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
git log $LOGOPTS --all --numstat --format="%n" --author="$a" | cut -f2 | awk '{s+=$1} END {print s}'
|
git log ${LOGOPTS} --all --numstat --format="%n" --author="${a}" | cut -f2 | awk '{s+=$1} END {print s}'
|
||||||
echo -n "Number of merges: "
|
echo -n "Number of merges: "
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
git log $LOGOPTS --all --merges --author="$a" | grep -c '^commit'
|
git log ${LOGOPTS} --all --merges --author="${a}" | grep -c '^commit'
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo "you're currently not in a git repository"
|
echo "you're currently not in a git repository"
|
||||||
|
|
@ -212,18 +211,16 @@ function gittowork() {
|
||||||
|
|
||||||
result=$(curl -L "https://www.gitignore.io/api/$1" 2> /dev/null)
|
result=$(curl -L "https://www.gitignore.io/api/$1" 2> /dev/null)
|
||||||
|
|
||||||
if [[ $result =~ ERROR ]]; then
|
if [[ "${result}" =~ ERROR ]]; then
|
||||||
echo "Query '$1' has no match. See a list of possible queries with 'gittowork list'"
|
echo "Query '$1' has no match. See a list of possible queries with 'gittowork list'"
|
||||||
elif [[ $1 = list ]]; then
|
elif [[ $1 == list ]]; then
|
||||||
echo "$result"
|
echo "${result}"
|
||||||
else
|
else
|
||||||
if [[ -f .gitignore ]]; then
|
if [[ -f .gitignore ]]; then
|
||||||
result=$(echo "$result" | grep -v "# Created by http://www.gitignore.io")
|
result=$(grep -v "# Created by http://www.gitignore.io" <<< "${result}")
|
||||||
echo ".gitignore already exists, appending..."
|
echo ".gitignore already exists, appending..."
|
||||||
echo "$result" >> .gitignore
|
|
||||||
else
|
|
||||||
echo "$result" > .gitignore
|
|
||||||
fi
|
fi
|
||||||
|
echo "${result}" >> .gitignore
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -257,7 +254,7 @@ function gitignore-reload() {
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Prompt user to commit or stash changes and exit
|
# Prompt user to commit or stash changes and exit
|
||||||
if [ $err = 1 ]; then
|
if [[ "${err}" == 1 ]]; then
|
||||||
echo >&2 "Please commit or stash them."
|
echo >&2 "Please commit or stash them."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -265,7 +262,7 @@ function gitignore-reload() {
|
||||||
|
|
||||||
# If we're here, then there are no uncommited or unstaged changes dangling around.
|
# If we're here, then there are no uncommited or unstaged changes dangling around.
|
||||||
# Proceed to reload .gitignore
|
# Proceed to reload .gitignore
|
||||||
if [ $err = 0 ]; then
|
if [[ "${err}" == 0 ]]; then
|
||||||
# Remove all cached files
|
# Remove all cached files
|
||||||
git rm -r --cached .
|
git rm -r --cached .
|
||||||
|
|
||||||
|
|
@ -290,6 +287,7 @@ function git-changelog() {
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# shellcheck disable=SC2155
|
||||||
local NEXT=$(date +%F)
|
local NEXT=$(date +%F)
|
||||||
|
|
||||||
if [[ "$2" == "md" ]]; then
|
if [[ "$2" == "md" ]]; then
|
||||||
|
|
@ -298,9 +296,9 @@ function git-changelog() {
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
git log "$1" --no-merges --format="%cd" --date=short | sort -u -r | while read DATE; do
|
git log "$1" --no-merges --format="%cd" --date=short | sort -u -r | while read DATE; do
|
||||||
echo
|
echo
|
||||||
echo "### $DATE"
|
echo "### ${DATE}"
|
||||||
git log --no-merges --format=" * (%h) %s by [%an](mailto:%ae)" --since="$DATE 00:00:00" --until="$DATE 24:00:00"
|
git log --no-merges --format=" * (%h) %s by [%an](mailto:%ae)" --since="${DATE} 00:00:00" --until="${DATE} 24:00:00"
|
||||||
NEXT=$DATE
|
NEXT=${DATE}
|
||||||
done
|
done
|
||||||
else
|
else
|
||||||
echo "CHANGELOG $1"
|
echo "CHANGELOG $1"
|
||||||
|
|
@ -309,9 +307,10 @@ function git-changelog() {
|
||||||
# shellcheck disable=SC2162
|
# shellcheck disable=SC2162
|
||||||
git log "$1" --no-merges --format="%cd" --date=short | sort -u -r | while read DATE; do
|
git log "$1" --no-merges --format="%cd" --date=short | sort -u -r | while read DATE; do
|
||||||
echo
|
echo
|
||||||
echo "[$DATE]"
|
echo "[${DATE}]"
|
||||||
git log --no-merges --format=" * (%h) %s by %an <%ae>" --since="$DATE 00:00:00" --until="$DATE 24:00:00"
|
git log --no-merges --format=" * (%h) %s by %an <%ae>" --since="${DATE} 00:00:00" --until="${DATE} 24:00:00"
|
||||||
NEXT=$DATE
|
# shellcheck disable=SC2034
|
||||||
|
NEXT=${DATE}
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ eval "$(goenv init - bash)"
|
||||||
# If moving to a directory with a goenv version set, reload the shell
|
# If moving to a directory with a goenv version set, reload the shell
|
||||||
# to ensure the shell environment matches expectations.
|
# to ensure the shell environment matches expectations.
|
||||||
_bash-it-goenv-preexec() {
|
_bash-it-goenv-preexec() {
|
||||||
export GOENV_OLD_VERSION="$(goenv version-name)"
|
GOENV_OLD_VERSION="$(goenv version-name)"
|
||||||
}
|
}
|
||||||
_bash-it-goenv-precmd() {
|
_bash-it-goenv-precmd() {
|
||||||
if [[ -n $GOENV_OLD_VERSION ]] && [[ "$GOENV_OLD_VERSION" != "$(goenv version-name)" ]]; then
|
if [[ -n $GOENV_OLD_VERSION ]] && [[ "$GOENV_OLD_VERSION" != "$(goenv version-name)" ]]; then
|
||||||
|
|
|
||||||
|
|
@ -3,29 +3,37 @@ cite about-plugin
|
||||||
about-plugin 'automatically set your xterm title with host and location info'
|
about-plugin 'automatically set your xterm title with host and location info'
|
||||||
|
|
||||||
_short-dirname() {
|
_short-dirname() {
|
||||||
local dir_name=$(dirs +0)
|
local dir_name="${PWD/~/\~}"
|
||||||
[ "$SHORT_TERM_LINE" = true ] && [ "${#dir_name}" -gt 8 ] && echo "${dir_name##*/}" || echo "${dir_name}"
|
if [[ "${SHORT_TERM_LINE:-}" == true && "${#dir_name}" -gt 8 ]]; then
|
||||||
|
echo "${dir_name##*/}"
|
||||||
|
else
|
||||||
|
echo "${dir_name}"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_short-command() {
|
_short-command() {
|
||||||
local input_command="$*"
|
local input_command="$*"
|
||||||
[ "$SHORT_TERM_LINE" = true ] && [ "${#input_command}" -gt 8 ] && echo "${input_command%% *}" || echo "${input_command}"
|
if [[ "${SHORT_TERM_LINE:-}" == true && "${#input_command}" -gt 8 ]]; then
|
||||||
|
echo "${input_command%% *}"
|
||||||
|
else
|
||||||
|
echo "${input_command}"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
set_xterm_title() {
|
set_xterm_title() {
|
||||||
local title="$1"
|
local title="${1:-}"
|
||||||
echo -ne "\033]0;$title\007"
|
echo -ne "\033]0;${title}\007"
|
||||||
}
|
}
|
||||||
|
|
||||||
precmd_xterm_title() {
|
precmd_xterm_title() {
|
||||||
set_xterm_title "${SHORT_USER:-${USER}}@${SHORT_HOSTNAME:-${HOSTNAME}} $(_short-dirname) $PROMPT_CHAR"
|
set_xterm_title "${SHORT_USER:-${USER}}@${SHORT_HOSTNAME:-${HOSTNAME}} $(_short-dirname) ${PROMPT_CHAR:-\$}"
|
||||||
}
|
}
|
||||||
|
|
||||||
preexec_xterm_title() {
|
preexec_xterm_title() {
|
||||||
set_xterm_title "$(_short-command "${1}") {$(_short-dirname)} (${SHORT_USER:-${USER}}@${SHORT_HOSTNAME:-${HOSTNAME}})"
|
set_xterm_title "$(_short-command "${1:-}") {$(_short-dirname)} (${SHORT_USER:-${USER}}@${SHORT_HOSTNAME:-${HOSTNAME}})"
|
||||||
}
|
}
|
||||||
|
|
||||||
case "$TERM" in
|
case "${TERM:-dumb}" in
|
||||||
xterm* | rxvt*)
|
xterm* | rxvt*)
|
||||||
precmd_functions+=(precmd_xterm_title)
|
precmd_functions+=(precmd_xterm_title)
|
||||||
preexec_functions+=(preexec_xterm_title)
|
preexec_functions+=(preexec_xterm_title)
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ function _set-prefix-based-on-path()
|
||||||
{
|
{
|
||||||
filename=$(_bash-it-get-component-name-from-path "$1")
|
filename=$(_bash-it-get-component-name-from-path "$1")
|
||||||
extension=$(_bash-it-get-component-type-from-path "$1")
|
extension=$(_bash-it-get-component-type-from-path "$1")
|
||||||
|
# shellcheck disable=SC2034
|
||||||
BASH_IT_LOG_PREFIX="$extension: $filename: "
|
BASH_IT_LOG_PREFIX="$extension: $filename: "
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -15,7 +16,7 @@ if [[ "$1" != "skip" ]] && [[ -d "$BASH_IT/enabled" ]]; then
|
||||||
alias|completion|plugin)
|
alias|completion|plugin)
|
||||||
_bash_it_config_type=$1
|
_bash_it_config_type=$1
|
||||||
_log_debug "Loading enabled $1 components..." ;;
|
_log_debug "Loading enabled $1 components..." ;;
|
||||||
*|'')
|
''|*)
|
||||||
_log_debug "Loading all enabled components..." ;;
|
_log_debug "Loading all enabled components..." ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_DIRTY=" ${red}✗"
|
SCM_THEME_PROMPT_DIRTY=" ${red}✗"
|
||||||
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓"
|
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓"
|
||||||
SCM_THEME_PROMPT_PREFIX=" |"
|
SCM_THEME_PROMPT_PREFIX=" |"
|
||||||
|
|
@ -11,7 +14,7 @@ GIT_THEME_PROMPT_SUFFIX="${green}|"
|
||||||
|
|
||||||
# Nicely formatted terminal prompt
|
# Nicely formatted terminal prompt
|
||||||
function prompt_command() {
|
function prompt_command() {
|
||||||
export PS1="\n${bold_black}[${blue}\@${bold_black}]-${bold_black}[${green}\u${yellow}@${green}\h${bold_black}]-${bold_black}[${purple}\w${bold_black}]-$(scm_prompt_info)\n${reset_color}\$ "
|
PS1="\n${bold_black}[${blue}\@${bold_black}]-${bold_black}[${green}\u${yellow}@${green}\h${bold_black}]-${bold_black}[${purple}\w${bold_black}]-$(scm_prompt_info)\n${reset_color}\$ "
|
||||||
}
|
}
|
||||||
|
|
||||||
safe_append_prompt_command prompt_command
|
safe_append_prompt_command prompt_command
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
# vim: ft=bash ts=2 sw=2 sts=2
|
# vim: ft=bash ts=2 sw=2 sts=2
|
||||||
#
|
#
|
||||||
# agnoster's Theme - https://gist.github.com/3712874
|
# agnoster's Theme - https://gist.github.com/3712874
|
||||||
|
|
@ -220,7 +221,7 @@ prompt_virtualenv() {
|
||||||
|
|
||||||
# Context: user@hostname (who am I and where am I)
|
# Context: user@hostname (who am I and where am I)
|
||||||
prompt_context() {
|
prompt_context() {
|
||||||
local user=$(whoami)
|
local user="${USER:-${LOGNAME:?}}"
|
||||||
|
|
||||||
if [[ $user != "$DEFAULT_USER" || -n $SSH_CLIENT ]]; then
|
if [[ $user != "$DEFAULT_USER" || -n $SSH_CLIENT ]]; then
|
||||||
prompt_segment black default "$user@\h"
|
prompt_segment black default "$user@\h"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
# Atomic Bash Prompt for Bash-it
|
# Atomic Bash Prompt for Bash-it
|
||||||
# By lfelipe base on the theme brainy of MunifTanjim
|
# By lfelipe base on the theme brainy of MunifTanjim
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_DIRTY=" ${red}✗"
|
SCM_THEME_PROMPT_DIRTY=" ${red}✗"
|
||||||
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓"
|
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
# Theme custom glyphs
|
# Theme custom glyphs
|
||||||
SCM_GIT_CHAR_GITLAB=${BARBUK_GITLAB_CHAR:=' '}
|
SCM_GIT_CHAR_GITLAB=${BARBUK_GITLAB_CHAR:=' '}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
|
||||||
CLOCK_CHAR_THEME_PROMPT_PREFIX=''
|
CLOCK_CHAR_THEME_PROMPT_PREFIX=''
|
||||||
CLOCK_CHAR_THEME_PROMPT_SUFFIX=''
|
CLOCK_CHAR_THEME_PROMPT_SUFFIX=''
|
||||||
|
|
@ -130,12 +131,11 @@ function scm {
|
||||||
}
|
}
|
||||||
|
|
||||||
scm_prompt() {
|
scm_prompt() {
|
||||||
local CHAR=$(scm_char)
|
local CHAR
|
||||||
|
CHAR="$(scm_char)"
|
||||||
local format=${SCM_PROMPT_FORMAT:-'[%s%s]'}
|
local format=${SCM_PROMPT_FORMAT:-'[%s%s]'}
|
||||||
|
|
||||||
if [[ $CHAR = "$SCM_NONE_CHAR" ]]; then
|
if [[ "${CHAR}" != "$SCM_NONE_CHAR" ]]; then
|
||||||
return
|
|
||||||
else
|
|
||||||
# shellcheck disable=2059
|
# shellcheck disable=2059
|
||||||
printf "$format\n" "$CHAR" "$(scm_prompt_info)"
|
printf "$format\n" "$CHAR" "$(scm_prompt_info)"
|
||||||
fi
|
fi
|
||||||
|
|
@ -352,15 +352,15 @@ function svn_prompt_vars {
|
||||||
# - .hg is located in ~/Projects/Foo/.hg
|
# - .hg is located in ~/Projects/Foo/.hg
|
||||||
# - get_hg_root starts at ~/Projects/Foo/Bar and sees that there is no .hg directory, so then it goes into ~/Projects/Foo
|
# - get_hg_root starts at ~/Projects/Foo/Bar and sees that there is no .hg directory, so then it goes into ~/Projects/Foo
|
||||||
function get_hg_root {
|
function get_hg_root {
|
||||||
local CURRENT_DIR=$(pwd)
|
local CURRENT_DIR="${PWD}"
|
||||||
|
|
||||||
while [ "$CURRENT_DIR" != "/" ]; do
|
while [[ "${CURRENT_DIR:-/}" != "/" ]]; do
|
||||||
if [ -d "$CURRENT_DIR/.hg" ]; then
|
if [[ -d "$CURRENT_DIR/.hg" ]]; then
|
||||||
echo "$CURRENT_DIR/.hg"
|
echo "$CURRENT_DIR/.hg"
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
CURRENT_DIR=$(dirname "$CURRENT_DIR")
|
CURRENT_DIR="${CURRENT_DIR%/*}"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -552,7 +552,7 @@ function prompt_char {
|
||||||
|
|
||||||
function battery_char {
|
function battery_char {
|
||||||
if [[ "${THEME_BATTERY_PERCENTAGE_CHECK}" = true ]]; then
|
if [[ "${THEME_BATTERY_PERCENTAGE_CHECK}" = true ]]; then
|
||||||
echo -e "${bold_red}$(battery_percentage)%"
|
echo -e "${bold_red:-}$(battery_percentage)%"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -594,7 +594,7 @@ function __check_precmd_conflict() {
|
||||||
function safe_append_prompt_command {
|
function safe_append_prompt_command {
|
||||||
local prompt_re
|
local prompt_re
|
||||||
|
|
||||||
if [ "${__bp_imported}" == "defined" ]; then
|
if [ "${__bp_imported:-missing}" == "defined" ]; then
|
||||||
# We are using bash-preexec
|
# We are using bash-preexec
|
||||||
if ! __check_precmd_conflict "${1}"; then
|
if ! __check_precmd_conflict "${1}"; then
|
||||||
precmd_functions+=("${1}")
|
precmd_functions+=("${1}")
|
||||||
|
|
@ -609,7 +609,7 @@ function safe_append_prompt_command {
|
||||||
prompt_re="\<${1}\>"
|
prompt_re="\<${1}\>"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ${PROMPT_COMMAND} =~ ${prompt_re} ]]; then
|
if [[ ${PROMPT_COMMAND[*]:-} =~ ${prompt_re} ]]; then
|
||||||
return
|
return
|
||||||
elif [[ -z ${PROMPT_COMMAND} ]]; then
|
elif [[ -z ${PROMPT_COMMAND} ]]; then
|
||||||
PROMPT_COMMAND="${1}"
|
PROMPT_COMMAND="${1}"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
# Detect whether a reboot is required
|
# Detect whether a reboot is required
|
||||||
function show_reboot_required() {
|
function show_reboot_required() {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_PREFIX=" ${yellow}‹"
|
SCM_THEME_PROMPT_PREFIX=" ${yellow}‹"
|
||||||
SCM_THEME_PROMPT_SUFFIX="›${reset_color}"
|
SCM_THEME_PROMPT_SUFFIX="›${reset_color}"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_DIRTY=" ${red}✗"
|
SCM_THEME_PROMPT_DIRTY=" ${red}✗"
|
||||||
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓"
|
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_DIRTY=" ${red}✗"
|
SCM_THEME_PROMPT_DIRTY=" ${red}✗"
|
||||||
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓"
|
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
# Brainy Bash Prompt for Bash-it
|
# Brainy Bash Prompt for Bash-it
|
||||||
# by MunifTanjim
|
# by MunifTanjim
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_PREFIX=""
|
SCM_THEME_PROMPT_PREFIX=""
|
||||||
SCM_THEME_PROMPT_SUFFIX=""
|
SCM_THEME_PROMPT_SUFFIX=""
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
function prompt_command() {
|
function prompt_command() {
|
||||||
PS1="${green}\u@\h $(clock_prompt) ${reset_color}${white}\w${reset_color}$(scm_prompt_info)${blue} →${bold_blue} ${reset_color} ${normal}"
|
PS1="${green}\u@\h $(clock_prompt) ${reset_color}${white}\w${reset_color}$(scm_prompt_info)${blue} →${bold_blue} ${reset_color} ${normal}"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
#!/usr/bin/env bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2005
|
||||||
|
# shellcheck disable=SC2034
|
||||||
|
|
||||||
function __ {
|
function __ {
|
||||||
echo "$@"
|
echo "$@"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_PREFIX="${bold_green}[ ${normal}"
|
SCM_THEME_PROMPT_PREFIX="${bold_green}[ ${normal}"
|
||||||
SCM_THEME_PROMPT_SUFFIX="${bold_green} ] "
|
SCM_THEME_PROMPT_SUFFIX="${bold_green} ] "
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_PREFIX=""
|
SCM_THEME_PROMPT_PREFIX=""
|
||||||
SCM_THEME_PROMPT_SUFFIX=""
|
SCM_THEME_PROMPT_SUFFIX=""
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
# Define this here so it can be used by all of the Powerline themes
|
# Define this here so it can be used by all of the Powerline themes
|
||||||
THEME_CHECK_SUDO=${THEME_CHECK_SUDO:=true}
|
THEME_CHECK_SUDO=${THEME_CHECK_SUDO:=true}
|
||||||
|
|
||||||
|
|
@ -139,7 +142,7 @@ function __powerline_scm_prompt() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function __powerline_cwd_prompt() {
|
function __powerline_cwd_prompt() {
|
||||||
local cwd=$(pwd | sed "s|^${HOME}|~|")
|
local cwd="${PWD/$HOME/\~}"
|
||||||
|
|
||||||
echo "${cwd}|${CWD_THEME_PROMPT_COLOR}"
|
echo "${cwd}|${CWD_THEME_PROMPT_COLOR}"
|
||||||
}
|
}
|
||||||
|
|
@ -157,10 +160,10 @@ function __powerline_clock_prompt() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function __powerline_battery_prompt() {
|
function __powerline_battery_prompt() {
|
||||||
local color=""
|
local color="" battery_status
|
||||||
local battery_status="$(battery_percentage 2> /dev/null)"
|
battery_status="$(battery_percentage 2> /dev/null)"
|
||||||
|
|
||||||
if [[ -z "${battery_status}" ]] || [[ "${battery_status}" = "-1" ]] || [[ "${battery_status}" = "no" ]]; then
|
if [[ -z "${battery_status}" || "${battery_status}" == "-1" || "${battery_status}" == "no" ]]; then
|
||||||
true
|
true
|
||||||
else
|
else
|
||||||
if [[ "$((10#${battery_status}))" -le 5 ]]; then
|
if [[ "$((10#${battery_status}))" -le 5 ]]; then
|
||||||
|
|
@ -176,7 +179,7 @@ function __powerline_battery_prompt() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function __powerline_in_vim_prompt() {
|
function __powerline_in_vim_prompt() {
|
||||||
if [ -n "$VIMRUNTIME" ]; then
|
if [[ -n "$VIMRUNTIME" ]]; then
|
||||||
echo "${IN_VIM_THEME_PROMPT_TEXT}|${IN_VIM_THEME_PROMPT_COLOR}"
|
echo "${IN_VIM_THEME_PROMPT_TEXT}|${IN_VIM_THEME_PROMPT_COLOR}"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
@ -221,7 +224,8 @@ function __powerline_command_number_prompt() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function __powerline_duration_prompt() {
|
function __powerline_duration_prompt() {
|
||||||
local duration=$(_command_duration)
|
local duration
|
||||||
|
duration=$(_command_duration)
|
||||||
[[ -n "$duration" ]] && echo "${duration}|${COMMAND_DURATION_PROMPT_COLOR}"
|
[[ -n "$duration" ]] && echo "${duration}|${COMMAND_DURATION_PROMPT_COLOR}"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -265,7 +269,7 @@ function __powerline_last_status_prompt() {
|
||||||
|
|
||||||
function __powerline_prompt_command() {
|
function __powerline_prompt_command() {
|
||||||
local last_status="$?" ## always the first
|
local last_status="$?" ## always the first
|
||||||
local separator_char="${POWERLINE_PROMPT_CHAR}"
|
local separator_char="${POWERLINE_PROMPT_CHAR}" info prompt_color
|
||||||
|
|
||||||
LEFT_PROMPT=""
|
LEFT_PROMPT=""
|
||||||
SEGMENTS_AT_LEFT=0
|
SEGMENTS_AT_LEFT=0
|
||||||
|
|
@ -277,7 +281,7 @@ function __powerline_prompt_command() {
|
||||||
|
|
||||||
## left prompt ##
|
## left prompt ##
|
||||||
for segment in $POWERLINE_PROMPT; do
|
for segment in $POWERLINE_PROMPT; do
|
||||||
local info="$(__powerline_"${segment}"_prompt)"
|
info="$(__powerline_"${segment}"_prompt)"
|
||||||
[[ -n "${info}" ]] && __powerline_left_segment "${info}"
|
[[ -n "${info}" ]] && __powerline_left_segment "${info}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
@ -289,7 +293,7 @@ function __powerline_prompt_command() {
|
||||||
|
|
||||||
# By default we try to match the prompt to the adjacent segment's background color,
|
# By default we try to match the prompt to the adjacent segment's background color,
|
||||||
# but when part of the prompt exists within that segment, we instead match the foreground color.
|
# but when part of the prompt exists within that segment, we instead match the foreground color.
|
||||||
local prompt_color="$(set_color "${LAST_SEGMENT_COLOR}" -)"
|
prompt_color="$(set_color "${LAST_SEGMENT_COLOR}" -)"
|
||||||
if [[ -n "${LEFT_PROMPT}" ]] && [[ -n "${POWERLINE_LEFT_LAST_SEGMENT_PROMPT_CHAR}" ]]; then
|
if [[ -n "${LEFT_PROMPT}" ]] && [[ -n "${POWERLINE_LEFT_LAST_SEGMENT_PROMPT_CHAR}" ]]; then
|
||||||
LEFT_PROMPT+="$(set_color - "${LAST_SEGMENT_COLOR}")${POWERLINE_LEFT_LAST_SEGMENT_PROMPT_CHAR}"
|
LEFT_PROMPT+="$(set_color - "${LAST_SEGMENT_COLOR}")${POWERLINE_LEFT_LAST_SEGMENT_PROMPT_CHAR}"
|
||||||
prompt_color="${normal}"
|
prompt_color="${normal}"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
|
||||||
# shellcheck source=../../themes/powerline/powerline.base.bash
|
# shellcheck source=../../themes/powerline/powerline.base.bash
|
||||||
. "$BASH_IT/themes/powerline/powerline.base.bash"
|
. "$BASH_IT/themes/powerline/powerline.base.bash"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
# scm theming
|
# scm theming
|
||||||
SCM_THEME_PROMPT_PREFIX="|"
|
SCM_THEME_PROMPT_PREFIX="|"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
# shellcheck shell=bash
|
# shellcheck shell=bash
|
||||||
|
# shellcheck disable=SC2034 # Expected behavior for themes.
|
||||||
|
# shellcheck disable=SC2154 #TODO: fix these all.
|
||||||
|
|
||||||
SCM_THEME_PROMPT_DIRTY=" ${bold_red}⊘${normal}"
|
SCM_THEME_PROMPT_DIRTY=" ${bold_red}⊘${normal}"
|
||||||
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓${normal}"
|
SCM_THEME_PROMPT_CLEAN=" ${bold_green}✓${normal}"
|
||||||
|
|
@ -26,8 +28,8 @@ venv_prompt() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function prompt_command() {
|
function prompt_command() {
|
||||||
retval=$?
|
local retval=$? ret_status
|
||||||
local ret_status="$([ $retval -eq 0 ] && echo -e "$STATUS_THEME_PROMPT_OK" || echo -e "$STATUS_THEME_PROMPT_BAD")"
|
ret_status="$([ $retval -eq 0 ] && echo -e "$STATUS_THEME_PROMPT_OK" || echo -e "$STATUS_THEME_PROMPT_BAD")"
|
||||||
PS1="\n${PURITY_THEME_PROMPT_COLOR}\w $(scm_prompt_info)\n${ret_status}$(venv_prompt)"
|
PS1="\n${PURITY_THEME_PROMPT_COLOR}\w $(scm_prompt_info)\n${ret_status}$(venv_prompt)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue