Skip to content

Commit

Permalink
plugins: clear and consistent log messages
Browse files Browse the repository at this point in the history
  • Loading branch information
gaelicWizard committed Jan 26, 2022
1 parent 0c24eda commit b535ffc
Show file tree
Hide file tree
Showing 22 changed files with 207 additions and 160 deletions.
7 changes: 7 additions & 0 deletions clean_files.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,10 +93,13 @@ plugins/available/base.plugin.bash
plugins/available/basher.plugin.bash
plugins/available/battery.plugin.bash
plugins/available/blesh.plugin.bash
plugins/available/cht.sh.plugin.bash
plugins/available/cmd-returned-notify.plugin.bash
plugins/available/direnv.plugin.bash
plugins/available/dirs.plugin.bash
plugins/available/docker-machine.plugin.bash
plugins/available/fasd.plugin.bash
plugins/available/fzf.plugin.bash
plugins/available/gif.plugin.bash
plugins/available/git-subrepo.plugin.bash
plugins/available/git.plugin.bash
Expand All @@ -109,24 +112,28 @@ plugins/available/history.plugin.bash
plugins/available/hub.plugin.bash
plugins/available/java.plugin.bash
plugins/available/jekyll.plugin.bash
plugins/available/jenv.plugin.bash
plugins/available/jump.plugin.bash
plugins/available/latex.plugin.bash
plugins/available/less-pretty-cat.plugin.bash
plugins/available/man.plugin.bash
plugins/available/nginx.plugin.bash
plugins/available/node.plugin.bash
plugins/available/nodenv.plugin.bash
plugins/available/nvm.plugin.bash
plugins/available/osx-timemachine.plugin.bash
plugins/available/osx.plugin.bash
plugins/available/percol.plugin.bash
plugins/available/plenv.plugin.bash
plugins/available/powerline.plugin.bash
plugins/available/projects.plugin.bash
plugins/available/proxy.plugin.bash
plugins/available/pyenv.plugin.bash
plugins/available/python.plugin.bash
plugins/available/rbenv.plugin.bash
plugins/available/ruby.plugin.bash
plugins/available/textmate.plugin.bash
plugins/available/thefuck.plugin.bash
plugins/available/todo.plugin.bash
plugins/available/xterm.plugin.bash
plugins/available/zoxide.plugin.bash
Expand Down
38 changes: 21 additions & 17 deletions plugins/available/cht-sh.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
cite about-plugin
# shellcheck shell=bash
about-plugin 'Simplify `curl cht.sh/<query>` to `cht.sh <query>`'

# Play nicely if user already installed cht.sh cli tool
if ! _command_exists cht.sh ; then
function cht.sh () {
about 'Executes a cht.sh curl query using the provided arguments'
param ' [ ( topic [sub-topic] ) | ~keyword ] [ :list | :help | :learn ]'
example '$ cht.sh :help'
example '$ cht.sh :list'
example '$ cht.sh tar'
example '$ cht.sh js "parse json"'
example '$ cht.sh python :learn'
example '$ cht.sh rust :list'
group 'cht-sh'

# Separate arguments with '/', preserving spaces within them
local query=$(IFS=/ ; echo "$*")
curl "cht.sh/${query}"
}
if _binary_exists cht.sh ; then
_log_warning "You have already installed `cht.sh`, so it's safe to disable this plugin."
return 1
fi

function cht.sh () {
about 'Executes a cht.sh curl query using the provided arguments'
param ' [ ( topic [sub-topic] ) | ~keyword ] [ :list | :help | :learn ]'
example '$ cht.sh :help'
example '$ cht.sh :list'
example '$ cht.sh tar'
example '$ cht.sh js "parse json"'
example '$ cht.sh python :learn'
example '$ cht.sh rust :list'
group 'cht-sh'

# Separate arguments with '/', preserving spaces within them
local query
query=$(IFS=/ ; echo "$*")
curl "cht.sh/${query}"
}
9 changes: 6 additions & 3 deletions plugins/available/direnv.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'load direnv, if you are using it: https://direnv.net/'

if _command_exists direnv; then
eval "$(direnv hook bash)"
if ! _binary_exists direnv; then
_log_warning "Could not find 'direnv'."
return 1
fi

# shellcheck disable=SC1090
source < <(direnv hook bash)
10 changes: 7 additions & 3 deletions plugins/available/fasd.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
cite about-plugin
# shellcheck shell=bash
about-plugin 'load fasd, if you are using it'

_command_exists fasd || return
if ! _binary_exists fasd; then
_log_warning "Unable to locage 'fasd'."
return 1
fi

eval "$(fasd --init auto)"
# shellcheck disable=SC1090
source < <(fasd --init auto)
59 changes: 30 additions & 29 deletions plugins/available/fzf.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,42 +1,43 @@
# Load after the system completion to make sure that the fzf completions are working
# BASH_IT_LOAD_PRIORITY: 375

cite about-plugin
# shellcheck shell=bash
about-plugin 'load fzf, if you are using it'

if [ -r ~/.fzf.bash ] ; then
source ~/.fzf.bash
elif [ -r "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash ] ; then
source "${XDG_CONFIG_HOME:-$HOME/.config}"/fzf/fzf.bash
# shellcheck source-path=$HOME source-path=$HOME/.config/fzf disable=SC1090 disable=SC1091
if [[ -r ~/.fzf.bash ]]; then
source ~/.fzf.bash
elif [[ -r "${XDG_CONFIG_HOME:-$HOME/.config}/fzf/fzf.bash" ]]; then
source "${XDG_CONFIG_HOME:-$HOME/.config}/fzf/fzf.bash"
fi

# No need to continue if the command is not present
_command_exists fzf || return
if ! _binary_exists fzf; then
_log_warning "${BASH_SOURCE[0]##*/}: unable to initialize without '$_' installed."
return 1
fi

if [ -z ${FZF_DEFAULT_COMMAND+x} ] && _command_exists fd ; then
export FZF_DEFAULT_COMMAND='fd --type f'
if [[ -z ${FZF_DEFAULT_COMMAND+x} ]] && _command_exists fd; then
export FZF_DEFAULT_COMMAND='fd --type f'
fi

fe() {
about "Open the selected file in the default editor"
group "fzf"
param "1: Search term"
example "fe foo"
function fe() {
about "Open the selected file in the default editor"
group "fzf"
param "1: Search term"
example "fe foo"

local IFS=$'\n'
local files
files=($(fzf-tmux --query="$1" --multi --select-1 --exit-0))
[[ -n "$files" ]] && ${EDITOR:-vim} "${files[@]}"
local IFS=$'\n'
local files
IFS=$'\n' read -ra files < <(fzf-tmux --query="$1" --multi --select-1 --exit-0)
[[ -n "${files[*]}" ]] && "${EDITOR:-${ALTERNATE_EDITOR:-nano}}" "${files[@]}"
}

fcd() {
about "cd to the selected directory"
group "fzf"
param "1: Directory to browse, or . if omitted"
example "fcd aliases"
function fcd() {
about "cd to the selected directory"
group "fzf"
param "1: Directory to browse, or . if omitted"
example "fcd aliases"

local dir
dir=$(find ${1:-.} -path '*/\.*' -prune \
-o -type d -print 2> /dev/null | fzf +m) &&
cd "$dir"
local dir
dir=$(find "${1:-.}" -path '*/\.*' -prune \
-o -type d -print 2> /dev/null | fzf +m) \
&& cd "$dir" || return
}
10 changes: 6 additions & 4 deletions plugins/available/go.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'go environment variables & path configuration'

# Load after basher and goenv
# BASH_IT_LOAD_PRIORITY: 270

# Test `go version` because goenv creates shim scripts that will be found in PATH
# but do not always resolve to a working install.
{ _command_exists go && go version &> /dev/null; } || return 0
if ! _binary_exists go || ! go version &> /dev/null; then
_log_warning "Unable to locate a working 'go'."
return 1
fi

export GOROOT="${GOROOT:-$(go env GOROOT)}"
export GOPATH="${GOPATH:-$(go env GOPATH)}"
Expand All @@ -16,7 +18,7 @@ export GOPATH="${GOPATH:-$(go env GOPATH)}"
# might be managed differently, we add each path's /bin folder to PATH using pathmunge,
# while preserving ordering.
# e.g. GOPATH=foo:bar -> PATH=foo/bin:bar/bin
_bash-it-gopath-pathmunge() {
function _bash-it-gopath-pathmunge() {
_about 'Ensures paths in GOPATH are added to PATH using pathmunge, with /bin appended'
_group 'go'
if [[ -z $GOPATH ]]; then
Expand All @@ -29,7 +31,7 @@ _bash-it-gopath-pathmunge() {
while [[ $i -gt 0 ]]; do
i=$((i - 1))
if [[ -n "${paths[i]}" ]]; then
pathmunge "${paths[i]}/bin"
pathmunge "${paths[i]}/bin" || true # ignore failures
fi
done
}
Expand Down
23 changes: 12 additions & 11 deletions plugins/available/goenv.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'load goenv, if you are using it'

# https://github.com/syndbg/goenv
Expand All @@ -11,29 +10,31 @@ about-plugin 'load goenv, if you are using it'
# - Check if in $PATH already
# - Check if installed manually to $GOENV_ROOT
# - Check if installed manually to $HOME
_command_exists goenv \
|| [[ -n "$GOENV_ROOT" && -x "$GOENV_ROOT/bin/goenv" ]] \
|| [[ -x "$HOME/.goenv/bin/goenv" ]] \
|| return 0
if ! _binary_exists goenv || ! [[ -n "${GOENV_ROOT:-}" && -x "$GOENV_ROOT/bin/goenv" ]] || ! [[ -x "$HOME/.goenv/bin/goenv" ]]; then
_log_warning "Unable to locate 'goenv'."
return 1
fi

# Set GOENV_ROOT, if not already set
export GOENV_ROOT="${GOENV_ROOT:-$HOME/.goenv}"
: "${GOENV_ROOT:=$HOME/.goenv}"
export GOENV_ROOT

# Add GOENV_ROOT/bin to PATH, if that's where it's installed
if ! _command_exists goenv && [[ -x "$GOENV_ROOT/bin/goenv" ]]; then
pathmunge "$GOENV_ROOT/bin"
fi

# Initialize goenv
eval "$(goenv init - bash)"
# shellcheck disable=SC1090 # Initialize goenv
source < <(goenv init - bash)

# If moving to a directory with a goenv version set, reload the shell
# to ensure the shell environment matches expectations.
_bash-it-goenv-preexec() {
function _bash-it-goenv-preexec() {
GOENV_OLD_VERSION="$(goenv version-name)"
}
_bash-it-goenv-precmd() {
if [[ -n $GOENV_OLD_VERSION ]] && [[ "$GOENV_OLD_VERSION" != "$(goenv version-name)" ]]; then

function _bash-it-goenv-precmd() {
if [[ -n "${GOENV_OLD_VERSION:-}" ]] && [[ "$GOENV_OLD_VERSION" != "$(goenv version-name)" ]]; then
exec env -u PATH -u GOROOT -u GOPATH -u GOENV_OLD_VERSION "${0/-/}" --login
fi
unset GOENV_OLD_VERSION
Expand Down
8 changes: 5 additions & 3 deletions plugins/available/hub.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'load hub, if you are using it'

if _command_exists hub; then
eval "$(hub alias -s)"
if ! _binary_exists hub; then
_log_warning "Unable to locate 'hub'."
return 1
fi

source < <(hub alias -s)
23 changes: 12 additions & 11 deletions plugins/available/jenv.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
cite about-plugin
# shellcheck shell=bash
about-plugin 'load jenv, if you are using it'

# Don't modify the environment if we can't find the tool:
# - Check if in $PATH already
# - Check if installed manually to $JENV_ROOT
# - Check if installed manually to $HOME
_command_exists jenv ||
[[ -n "$JENV_ROOT" && -x "$JENV_ROOT/bin/jenv" ]] ||
[[ -x "$HOME/.jenv/bin/jenv" ]] ||
return
if ! _binary_exists jenv && ! [[ -n "${JENV_ROOT:-}" && -x "$JENV_ROOT/bin/jenv" ]] && ! [[ -x "$HOME/.jenv/bin/jenv" ]]; then
_log_warning "Unable to locate 'jenv'."
return 1
fi

# Set JENV_ROOT, if not already set
export JENV_ROOT="${JENV_ROOT:-$HOME/.jenv}"
: "${JENV_ROOT:=$HOME/.jenv}"
export JENV_ROOT

# Add JENV_ROOT/bin to PATH, if that's where it's installed
! _command_exists jenv &&
[[ -x "$JENV_ROOT/bin/jenv" ]] &&
pathmunge "$JENV_ROOT/bin"
if ! _command_exists jenv && [[ -x "$JENV_ROOT/bin/jenv" ]]; then
pathmunge "$JENV_ROOT/bin"
fi

# Initialize jenv
eval "$(jenv init - bash)"
# shellcheck disable=SC1090 # Initialize jenv
source < <(jenv init - bash)
6 changes: 4 additions & 2 deletions plugins/available/less-pretty-cat.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'pygmentize instead of cat to terminal if possible'

_command_exists pygmentize || return
if ! _binary_exists pygmentize; then
_log_warning "${BASH_SOURCE[0]##*/}: unable to initialize without '$_' installed."
return 1
fi

# pigmentize cat and less outputs - call them ccat and cless to avoid that
# especially cat'ed output in scripts gets mangled with pygemtized meta characters
Expand Down
8 changes: 5 additions & 3 deletions plugins/available/node.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'Node.js helper functions'

# Check that we have npm
_command_exists npm || return
if ! _binary_exists npm; then
_log_warning "Unable to locage 'npm'."
return 1
fi

# Ensure local modules are preferred in PATH
pathmunge "./node_modules/.bin" "after"

# If not using nodenv, ensure global modules are in PATH
if [[ ! "$(type -p npm)" == *"nodenv/shims"* ]]; then
if [[ "$(type -p npm)" != *"nodenv/shims"* ]]; then
pathmunge "$(npm config get prefix)/bin" "after"
fi
15 changes: 10 additions & 5 deletions plugins/available/nodenv.plugin.bash
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
# shellcheck shell=bash
cite about-plugin
about-plugin 'load nodenv, if you are using it'

export NODENV_ROOT="$HOME/.nodenv"
pathmunge "$NODENV_ROOT/bin"
if [[ -d "${NODENV_ROOT:=$HOME/.nodenv}/bin" ]]; then
export NODENV_ROOT
pathmunge "$NODENV_ROOT/bin"
fi

if _command_exists nodenv; then
eval "$(nodenv init - bash)"
if ! _binary_exists nodenv; then
_log_warning "Unable to locage 'nodenv'."
return 1
fi

# shellcheck disable=SC1090
source < <(nodenv init - bash)
Loading

0 comments on commit b535ffc

Please sign in to comment.