OpenSDE Packages Database (without history before r20070)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.8 KiB

  1. # --- SDE-COPYRIGHT-NOTE-BEGIN ---
  2. # This copyright note is auto-generated by ./scripts/Create-CopyPatch.
  3. #
  4. # Filename: package/.../sysfiles/etc_rc.d_functions-ansi.in.txt
  5. # Copyright (C) 2006 - 2008 The OpenSDE Project
  6. #
  7. # More information can be found in the files COPYING and README.
  8. #
  9. # This program is free software; you can redistribute it and/or modify
  10. # it under the terms of the GNU General Public License as published by
  11. # the Free Software Foundation; version 2 of the License. A copy of the
  12. # GNU General Public License can be found in the file COPYING.
  13. # --- SDE-COPYRIGHT-NOTE-END ---
  14. # http://en.wikipedia.org/wiki/ANSI_escape_code
  15. #
  16. ECHO='echo -e'
  17. ESC='\e' # \e or \033
  18. BELL='\a' # \a or 07
  19. ART_SUCCESS=" OK "
  20. ART_FAILURE=" FAIL"
  21. ART_NEXT=" v "
  22. COLOR_BANNER="$ESC[35;1m" # magenta
  23. COLOR_TITLE="$ESC[36m" # cyan
  24. COLOR_NORMAL="$ESC[0m" # default (no attributes)
  25. COLOR_SUCCESS="$ESC[32m" # green
  26. COLOR_FAILURE="$ESC[31m" # red
  27. MOVE_EOL="$ESC[222G" # 222 columns to the right... kind-of-eol
  28. MOVE_UP="$ESC[1A" # 1 line up (eat last \n)
  29. MOVE_LEFT_STATUS="$ESC[$( expr ${#ART_SUCCESS} - 1 )D" # move left the length of $ART_SUCCESS
  30. MOVE_LEFT_NEXT="$ESC[$( expr ${#ART_NEXT} - 1 )D" # move left the length of $ART_NEXT
  31. banner()
  32. {
  33. $ECHO "$COLOR_BANNER$*$COLOR_NORMAL"
  34. }
  35. title()
  36. {
  37. local x=1 columns=
  38. columns=$( if ! stty size -F /dev/tty; then
  39. stty size -F /dev/console
  40. fi 2> /dev/null | cut -d' ' -f2 )
  41. [ -n "$columns" ] || columns=80
  42. # fill with dots with an "arrow" pointing down at the end.
  43. for (( x=1; x<columns; x++ )); do
  44. $ECHO -n '.'
  45. done
  46. $ECHO -n "$MOVE_LEFT_NEXT$ART_NEXT\r"
  47. # and the title
  48. $ECHO "$COLOR_TITLE$* $COLOR_NORMAL"
  49. error=0
  50. }
  51. status()
  52. {
  53. $ECHO -n "$MOVE_UP$MOVE_EOL$MOVE_LEFT_STATUS"
  54. if [ ${1:-$error} -eq 0 ]; then
  55. $ECHO "$COLOR_SUCCESS$ART_SUCCESS$COLOR_NORMAL"
  56. else
  57. $ECHO "$BELL$COLOR_FAILURE$ART_FAILURE$COLOR_NORMAL"
  58. fi
  59. }