mirror of
https://github.com/tumillanino/miasma-os.git
synced 2026-04-11 07:15:31 +00:00
move to new repo
This commit is contained in:
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Collection of various test strings that could be the output of the tmux
|
||||
# 'pane_current_comamnd' message. Included as regression test for updates to
|
||||
# the inline grep pattern used in the `.tmux.conf` configuration
|
||||
|
||||
set -e
|
||||
|
||||
RED=$(tput setaf 1)
|
||||
GREEN=$(tput setaf 2)
|
||||
YELLOW=$(tput setaf 3)
|
||||
NORMAL=$(tput sgr0)
|
||||
|
||||
# Import 'vim_pattern'
|
||||
source 'vim-tmux-navigator.tmux'
|
||||
|
||||
match_tests=(
|
||||
vim
|
||||
Vim
|
||||
VIM
|
||||
vimdiff
|
||||
lvim
|
||||
/usr/local/bin/vim
|
||||
vi
|
||||
gvim
|
||||
view
|
||||
gview
|
||||
nvim
|
||||
vimx
|
||||
fzf
|
||||
.vim-wrapped
|
||||
.nvim-wrapped
|
||||
)
|
||||
no_match_tests=(
|
||||
/Users/christoomey/.vim/thing
|
||||
/usr/local/bin/start-vim
|
||||
start-vim
|
||||
this_is_not_vim
|
||||
thisisnotvim
|
||||
/vim/is/not/final/path/segment
|
||||
file_with_extension.vim
|
||||
tvim # there's not yet a vi clone named 'tvim', so the pattern shouldn't match
|
||||
)
|
||||
|
||||
MATCH_RESULT="${GREEN}match${NORMAL}"
|
||||
NO_MATCH_RESULT="${RED}not match${NORMAL}"
|
||||
|
||||
display_matches() {
|
||||
local result
|
||||
local final_status=0
|
||||
for process_name in "$@"; do
|
||||
result="$(matches_vim_pattern $process_name)"
|
||||
if [[ "${result}" != "${expect_result}" ]]; then
|
||||
final_status=1
|
||||
fi
|
||||
printf "%s %s\n" "${result}" "$process_name"
|
||||
done
|
||||
return "${final_status}"
|
||||
}
|
||||
|
||||
matches_vim_pattern() {
|
||||
if echo "$1" | grep -iqE "^${vim_pattern}$"; then
|
||||
echo "${MATCH_RESULT}"
|
||||
else
|
||||
echo "${NO_MATCH_RESULT}"
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
echo -e "Testing against pattern: ${YELLOW}$vim_pattern${NORMAL}\n"
|
||||
|
||||
local final_status=0
|
||||
echo -e "These should all ${MATCH_RESULT}\n----------------------"
|
||||
local expect_result="${MATCH_RESULT}"
|
||||
display_matches "${match_tests[@]}" || final_status=1
|
||||
|
||||
echo -e "\nThese should all ${NO_MATCH_RESULT}\n--------------------------"
|
||||
expect_result="${NO_MATCH_RESULT}"
|
||||
display_matches "${no_match_tests[@]}" || final_status=1
|
||||
|
||||
if [[ "${final_status}" == 0 ]]; then
|
||||
echo -e "\n${GREEN}All test cases passed!${NORMAL}"
|
||||
else
|
||||
echo -e "\n${RED}Some test cases are failing${NORMAL}"
|
||||
fi
|
||||
|
||||
# Find lines in README.md which redefine 'vim_pattern' so that we can make
|
||||
# sure it matches the canonical definition in vim-tmux-navigator.tmux. This
|
||||
# includes lines starting with '- vim_pattern', however it skips
|
||||
# '+ vim_pattern' since those lines indicate intentional modifications and
|
||||
# need manual review.
|
||||
IFS='
|
||||
'
|
||||
local -a pattern_copies=($(sed -En "s/^\s*(- )?vim_pattern='(.*)'/\2/p" README.md))
|
||||
|
||||
local pattern_copy
|
||||
local readme_status=0
|
||||
echo -e "\nChecking README.md documentation"
|
||||
for pattern_copy in "${pattern_copies[@]}"; do
|
||||
if [[ "${vim_pattern}" != "${pattern_copy}" ]]; then
|
||||
echo -n "Update 'vim_pattern' in README.md "
|
||||
echo -n "(current line: ${RED}'${pattern_copy}'${NORMAL}) "
|
||||
echo "to match ${GREEN}'${vim_pattern}'${NORMAL}"
|
||||
readme_status=1
|
||||
fi
|
||||
done
|
||||
if [[ "${readme_status}" == 0 ]]; then
|
||||
echo -e "\n${GREEN}README.md is up to date${NORMAL}"
|
||||
else
|
||||
echo -e "\n${RED}Update README.md to fix defintions of 'vim_pattern'${NORMAL}"
|
||||
final_status="${readme_status}"
|
||||
fi
|
||||
|
||||
return "${final_status}"
|
||||
}
|
||||
|
||||
main
|
||||
Reference in New Issue
Block a user