initial health check implementation
This commit is contained in:
parent
8ce451da4e
commit
b072d91958
|
@ -39,9 +39,9 @@ While in **[fingers]** mode, you can use the following shortcuts:
|
||||||
|
|
||||||
# Requirements
|
# Requirements
|
||||||
|
|
||||||
* bash 4+
|
|
||||||
* tmux 2.1+ ( 2.2 recommended )
|
* tmux 2.1+ ( 2.2 recommended )
|
||||||
* gawk ( optional but recommended )
|
* bash 4+
|
||||||
|
* gawk
|
||||||
|
|
||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,77 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
source $CURRENT_DIR/utils.sh
|
||||||
|
source $CURRENT_DIR/debug.sh
|
||||||
|
|
||||||
|
REQUIRED_BASH_MAJOR=4
|
||||||
|
REQUIRED_TMUX_MAJOR=2
|
||||||
|
RECOMMENDED_TMUX_MINOR=3
|
||||||
|
HELP_LINK="https://github.com/Morantron/tmux-fingers/blob/master/docs/health-check.md"
|
||||||
|
|
||||||
|
health_tmp=$(fingers_tmp)
|
||||||
|
|
||||||
|
function is_tmux_ready() {
|
||||||
|
local num_windows=$(tmux list-windows | wc -l)
|
||||||
|
|
||||||
|
if [[ $num_windows -gt 0 ]]; then
|
||||||
|
echo 1
|
||||||
|
else
|
||||||
|
echo 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function program_exists() {
|
||||||
|
local prog="$1"
|
||||||
|
|
||||||
|
if [[ $(which "$prog" &> /dev/null) ]]; then
|
||||||
|
echo "0"
|
||||||
|
else
|
||||||
|
echo "1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function log_health() {
|
||||||
|
echo "$1" >> "$health_tmp"
|
||||||
|
}
|
||||||
|
|
||||||
|
function perform_health_check() {
|
||||||
|
local healthy=1
|
||||||
|
|
||||||
|
if [[ $(program_exists "gawk") = "0" ]]; then
|
||||||
|
log_health "* 'gawk' not found"
|
||||||
|
healthy=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
BASH_MAJOR=$(echo "$BASH_VERSION" | grep -Eo "^[0-9]")
|
||||||
|
|
||||||
|
if [[ "$BASH_MAJOR" -lt "$REQUIRED_BASH_MAJOR" ]]; then
|
||||||
|
log_health "* Bash version \"$BASH_VERSION\" is too old."
|
||||||
|
healthy=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
TMUX_VERSION=$(tmux -V | grep -Eio "[0-9]+(\.[0-9a-z])*$")
|
||||||
|
TMUX_MAJOR=$(echo "$TMUX_VERSION" | cut -f1 -d.)
|
||||||
|
TMUX_MINOR=$(echo "$TMUX_VERSION" | cut -f2 -d. | grep -Eo "[0-9]")
|
||||||
|
|
||||||
|
if [[ $TMUX_MAJOR -lt $REQUIRED_TMUX_MAJOR ]]; then
|
||||||
|
log_health "* tmux version \"$TMUX_VERSION\" is too old."
|
||||||
|
healthy=0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $TMUX_MAJOR -eq $REQUIRED_TMUX_MAJOR ]] && [[ $TMUX_MINOR -lt $RECOMMENDED_TMUX_MINOR ]]; then
|
||||||
|
echo "* WARNING: tmux 2.2+ is recommended"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $healthy -eq 0 ]]; then
|
||||||
|
while [[ $(is_tmux_ready) = 0 ]]; do
|
||||||
|
: # waiting for-tmux
|
||||||
|
done
|
||||||
|
|
||||||
|
tmux run "echo -e 'tmux-fingers health-check:\\n\\n'; cat $health_tmp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -rf "$health_tmp"
|
||||||
|
}
|
||||||
|
|
||||||
|
perform_health_check
|
|
@ -1,8 +1,10 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
DEFAULT_FINGERS_KEY="F"
|
DEFAULT_FINGERS_KEY="F"
|
||||||
FINGERS_KEY=$(tmux show-option -gqv @fingers-key)
|
FINGERS_KEY=$(tmux show-option -gqv @fingers-key)
|
||||||
FINGERS_KEY=${FINGERS_KEY:-$DEFAULT_FINGERS_KEY}
|
FINGERS_KEY=${FINGERS_KEY:-$DEFAULT_FINGERS_KEY}
|
||||||
|
|
||||||
|
tmux run -b "$CURRENT_DIR/scripts/health-check.sh"
|
||||||
tmux bind-key $FINGERS_KEY run-shell "tmux capture-pane -p | $CURRENT_DIR/scripts/tmux-fingers.sh"
|
tmux bind-key $FINGERS_KEY run-shell "tmux capture-pane -p | $CURRENT_DIR/scripts/tmux-fingers.sh"
|
||||||
|
|
Loading…
Reference in New Issue