ci: add testing & shellcheck workflows (#159)
This commit is contained in:
parent
cece0c3677
commit
4eb10fa510
3 changed files with 157 additions and 0 deletions
71
.github/scripts/test.bash
vendored
Executable file
71
.github/scripts/test.bash
vendored
Executable file
|
@ -0,0 +1,71 @@
|
|||
#!/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 "$@"
|
Loading…
Add table
Add a link
Reference in a new issue