tmux-catppuccin-coal/.github/scripts/test.bash

71 lines
1.2 KiB
Bash
Executable file

#!/usr/bin/env bash
#
# Usage:
# ./test.bash catpuccin-tmux/catpuccin-tmux.tmux
# ./test.bash catpuccin-tmux/catpuccin-tmux.tmux ./config-example1
#
SOCKET_NAME="${SOCKET_NAME:-test}"
tmux() {
command tmux -L "$SOCKET_NAME" "$@"
}
start_tmux_server() {
echo "Starting tmux server" >&2
tmux new -s dummy -d
}
kill_tmux_server() {
echo "Stopping tmux server" >&2
tmux kill-server
}
check() {
local out exit_code
exit_code="$1"
out="$2"
if [ "$exit_code" -ne 0 ] || [ -n "$out" ]; then
echo "Failed with exit code $exit_code and output:"
echo "$out"
exit 1
fi
}
main() {
local config_file plugin output exit_code
plugin="$1"
config_file="$2"
echo "Using socket '$SOCKET_NAME'" >&2
# Make sure its a new/clean server
kill_tmux_server 2>/dev/null
start_tmux_server
if [ -z "$config_file" ]; then
echo "No config file provided" >&2
else
echo "sourcing config file '$config_file'" >&2
tmux source-file "$config_file"
fi
if [ -z "$plugin" ]; then
echo "ERROR: No path to the plugin provided" >&2
exit 1
else
echo "Running plugin: $plugin" >&2
output=$(tmux run-shell "$plugin" 2>&2)
exit_code="$?"
check "$exit_code" "$output"
fi
kill_tmux_server
}
main "$@"