mirror of
https://github.com/kforney/pentest-distro-builder.git
synced 2024-11-01 08:59:11 -06:00
93 lines
2.6 KiB
Text
93 lines
2.6 KiB
Text
|
#!/usr/bin/env bash
|
||
|
|
||
|
set -e
|
||
|
|
||
|
# Place holder for status left/right
|
||
|
place_holder="\#{prefix_highlight}"
|
||
|
|
||
|
# Possible configurations
|
||
|
fg_color_config='@prefix_highlight_fg'
|
||
|
bg_color_config='@prefix_highlight_bg'
|
||
|
output_prefix='@prefix_highlight_output_prefix'
|
||
|
output_suffix='@prefix_highlight_output_suffix'
|
||
|
show_copy_config='@prefix_highlight_show_copy_mode'
|
||
|
copy_attr_config='@prefix_highlight_copy_mode_attr'
|
||
|
|
||
|
# Defaults
|
||
|
default_fg='colour231'
|
||
|
default_bg='colour04'
|
||
|
default_copy_attr='fg=default,bg=yellow'
|
||
|
|
||
|
tmux_option() {
|
||
|
local -r value=$(tmux show-option -gqv "$1")
|
||
|
local -r default="$2"
|
||
|
|
||
|
if [ ! -z "$value" ]; then
|
||
|
echo "$value"
|
||
|
else
|
||
|
echo "$default"
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
highlight() {
|
||
|
local -r \
|
||
|
status="$1" \
|
||
|
prefix="$2" \
|
||
|
prefix_highlight="$3" \
|
||
|
show_copy_mode="$4" \
|
||
|
copy_highlight="$5" \
|
||
|
output_prefix="$6" \
|
||
|
output_suffix="$7" \
|
||
|
copy="Copy"
|
||
|
|
||
|
local -r status_value="$(tmux_option "$status")"
|
||
|
local -r prefix_with_optional_affixes="$output_prefix$prefix$output_suffix"
|
||
|
local -r copy_with_optional_affixes="$output_prefix$copy$output_suffix"
|
||
|
|
||
|
if [[ "on" = "$show_copy_mode" ]]; then
|
||
|
local -r fallback="${copy_highlight}#{?pane_in_mode,$copy_with_optional_affixes,}"
|
||
|
else
|
||
|
local -r fallback=""
|
||
|
fi
|
||
|
|
||
|
local -r highlight_on_prefix="${prefix_highlight}#{?client_prefix,$prefix_with_optional_affixes,$fallback}#[default]"
|
||
|
tmux set-option -gq "$status" "${status_value/$place_holder/$highlight_on_prefix}"
|
||
|
}
|
||
|
|
||
|
main() {
|
||
|
local -r \
|
||
|
prefix=$(tmux_option prefix) \
|
||
|
fg_color=$(tmux_option "$fg_color_config" "$default_fg") \
|
||
|
bg_color=$(tmux_option "$bg_color_config" "$default_bg") \
|
||
|
show_copy_mode=$(tmux_option "$show_copy_config" "off") \
|
||
|
output_prefix=$(tmux_option "$output_prefix" " ") \
|
||
|
output_suffix=$(tmux_option "$output_suffix" " ") \
|
||
|
copy_attr=$(tmux_option "$copy_attr_config" "$default_copy_attr")
|
||
|
|
||
|
local -r short_prefix=$(
|
||
|
echo "$prefix" | tr "[:lower:]" "[:upper:]" | sed 's/C-/\^/'
|
||
|
)
|
||
|
|
||
|
local -r \
|
||
|
prefix_highlight="#[fg=$fg_color,bg=$bg_color]" \
|
||
|
copy_highlight="${copy_attr:+#[default,$copy_attr]}"
|
||
|
|
||
|
highlight "status-right" \
|
||
|
"$short_prefix" \
|
||
|
"$prefix_highlight" \
|
||
|
"$show_copy_mode" \
|
||
|
"$copy_highlight" \
|
||
|
"$output_prefix" \
|
||
|
"$output_suffix"
|
||
|
|
||
|
highlight "status-left" \
|
||
|
"$short_prefix" \
|
||
|
"$prefix_highlight" \
|
||
|
"$show_copy_mode" \
|
||
|
"$copy_highlight" \
|
||
|
"$output_prefix" \
|
||
|
"$output_suffix"
|
||
|
}
|
||
|
|
||
|
main
|