My configuration files for Debian/Ubuntu applications
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 
 

79 рядки
1.9 KiB

  1. #!/usr/bin/env bash
  2. VERSION="$1"
  3. UNSUPPORTED_MSG="$2"
  4. get_tmux_option() {
  5. local option=$1
  6. local default_value=$2
  7. local option_value=$(tmux show-option -gqv "$option")
  8. if [ -z "$option_value" ]; then
  9. echo "$default_value"
  10. else
  11. echo "$option_value"
  12. fi
  13. }
  14. # Ensures a message is displayed for 5 seconds in tmux prompt.
  15. # Does not override the 'display-time' tmux option.
  16. display_message() {
  17. local message="$1"
  18. # display_duration defaults to 5 seconds, if not passed as an argument
  19. if [ "$#" -eq 2 ]; then
  20. local display_duration="$2"
  21. else
  22. local display_duration="5000"
  23. fi
  24. # saves user-set 'display-time' option
  25. local saved_display_time=$(get_tmux_option "display-time" "750")
  26. # sets message display time to 5 seconds
  27. tmux set-option -gq display-time "$display_duration"
  28. # displays message
  29. tmux display-message "$message"
  30. # restores original 'display-time' value
  31. tmux set-option -gq display-time "$saved_display_time"
  32. }
  33. # this is used to get "clean" integer version number. Examples:
  34. # `tmux 1.9` => `19`
  35. # `1.9a` => `19`
  36. get_digits_from_string() {
  37. local string="$1"
  38. local only_digits="$(echo "$string" | tr -dC '[:digit:]')"
  39. echo "$only_digits"
  40. }
  41. tmux_version_int() {
  42. local tmux_version_string=$(tmux -V)
  43. echo "$(get_digits_from_string "$tmux_version_string")"
  44. }
  45. unsupported_version_message() {
  46. if [ -n "$UNSUPPORTED_MSG" ]; then
  47. echo "$UNSUPPORTED_MSG"
  48. else
  49. echo "Error, Tmux version unsupported! Please install Tmux version $VERSION or greater!"
  50. fi
  51. }
  52. exit_if_unsupported_version() {
  53. local current_version="$1"
  54. local supported_version="$2"
  55. if [ "$current_version" -lt "$supported_version" ]; then
  56. display_message "$(unsupported_version_message)"
  57. exit 1
  58. fi
  59. }
  60. main() {
  61. local supported_version_int="$(get_digits_from_string "$VERSION")"
  62. local current_version_int="$(tmux_version_int)"
  63. exit_if_unsupported_version "$current_version_int" "$supported_version_int"
  64. }
  65. main