diff --git a/shell-integration/ssh/kitty b/shell-integration/ssh/kitty index 7a796519c..c114039b4 100755 --- a/shell-integration/ssh/kitty +++ b/shell-integration/ssh/kitty @@ -7,7 +7,12 @@ die() { printf "\033[31m%s\033[m\n\r" "$*" > /dev/stderr; exit 1; } delete_lock_dir() { trap '' EXIT INT QUIT TERM - [ -n "$lock_dir" ] && command rm -rf "$lock_dir" + [ -n "$lock_dir" ] && { + # switch to normal mode + printf "\033[?1049l" + command rm -rf "$lock_dir" + lock_dir="" + } } exec_kitty() { @@ -23,18 +28,18 @@ script_dir=$(command dirname "$script_path") install_dir="$(command dirname "$script_dir")/install" local_kitty_version_file="$install_dir/installed-kitty-version" kitty_exe="$install_dir/bin/kitty" +what="installed" if [ -r "$local_kitty_version_file" -a -f "$local_kitty_version_file" ]; then - if [ $? = 0 ]; then - version_sort_key() { - printf "%05d%05d%05d" $(echo "$1" | command tr '.' '\n' | command head -n 3) - } - remote_kitty_version=$(command cat "$script_dir/../version") - [ $? = 0 ] || die "Failed to read remote kitty version" - local_kitty_version=$(command cat "$local_kitty_version_file") - [ $? = 0 ] || die "Failed to read local kitty version" - [ $(version_sort_key "$remote_kitty_version") -le $(version_sort_key "$local_kitty_version") ] && exec_kitty "$@" - fi + what="updated" + version_sort_key() { + printf "%05d%05d%05d" $(echo "$1" | command tr '.' '\n' | command head -n 3) + } + remote_kitty_version=$(command cat "$script_dir/../version") + [ $? = 0 ] || die "Failed to read remote kitty version" + local_kitty_version=$(command cat "$local_kitty_version_file") + [ $? = 0 ] || die "Failed to read local kitty version" + [ $(version_sort_key "$remote_kitty_version") -le $(version_sort_key "$local_kitty_version") ] && exec_kitty "$@" fi case "$(command uname)" in @@ -89,6 +94,9 @@ if ! command mkdir "$lock_dir" 2> /dev/null; then fi trap 'delete_lock_dir' EXIT INT QUIT TERM +# switch to alternate screen +printf "\033[?1049h" +printf "\033[33mkitty needs to be %s\033[m\n\n" "$what" command rm -rf "$install_dir" command mkdir -p "$install_dir" printf "Downloading kitty from: \033[32m%s\033[m\n\n" "$url"