grass-xterm-mac 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. #!/bin/sh
  2. # script to emulate an xterm in OSX Terminal.app
  3. #
  4. # -William Kyngesburye
  5. # just in case accidentally called on another system
  6. SYSTEMOSX=`uname -s | grep "Darwin"`
  7. if [ "$SYSTEMOSX" ] ; then
  8. # manually transfer the necessary env vars
  9. TMPSCRIPT="/tmp/grassxterm_$$"
  10. touch "$TMPSCRIPT.sh"
  11. chmod +x "$TMPSCRIPT.sh"
  12. echo "#!/bin/sh" > "$TMPSCRIPT.sh"
  13. echo "DISPLAY=$DISPLAY" >> "$TMPSCRIPT.sh"
  14. echo "PATH=\"$PATH\"" >> "$TMPSCRIPT.sh"
  15. echo "GIS_LOCK=\"$GIS_LOCK\"" >> "$TMPSCRIPT.sh"
  16. echo "GISRC=\"$GISRC\"" >> "$TMPSCRIPT.sh"
  17. echo "GISBASE=\"$GISBASE\"" >> "$TMPSCRIPT.sh"
  18. echo "GRASS_VERSION=\"$GRASS_VERSION\"" >> "$TMPSCRIPT.sh"
  19. echo "GRASS_PAGER=$GRASS_PAGER" >> "$TMPSCRIPT.sh"
  20. echo "DYLD_LIBRARY_PATH=\"$DYLD_LIBRARY_PATH\"" >> "$TMPSCRIPT.sh"
  21. echo "GRASS_LD_LIBRARY_PATH=\"$GRASS_LD_LIBRARY_PATH\"" >> "$TMPSCRIPT.sh"
  22. echo "GRASS_WISH=\"$GRASS_WISH\"" >> "$TMPSCRIPT.sh"
  23. echo "GRASS_TCLSH=\"$GRASS_TCLSH\"" >> "$TMPSCRIPT.sh"
  24. echo "GRASS_HTML_BROWSER=\"$GRASS_HTML_BROWSER\"" >> "$TMPSCRIPT.sh"
  25. echo "GRASS_HTML_BROWSER_MACOSX=\"$GRASS_HTML_BROWSER_MACOSX\"" >> "$TMPSCRIPT.sh"
  26. echo "export DISPLAY PATH GIS_LOCK GISRC GISBASE GRASS_VERSION GRASS_PAGER DYLD_LIBRARY_PATH GRASS_LD_LIBRARY_PATH GRASS_WISH GRASS_TCLSH GRASS_HTML_BROWSER GRASS_HTML_BROWSER_MACOSX" >> "$TMPSCRIPT.sh"
  27. if [ "$GRASS_ADDON_PATH" ] ; then
  28. echo "GRASS_ADDON_PATH=\"$GRASS_ADDON_PATH\"" >> "$TMPSCRIPT.sh"
  29. echo "export GRASS_ADDON_PATH" >> "$TMPSCRIPT.sh"
  30. fi
  31. if [ "$TCL_LIBRARY" ] ; then
  32. echo "TCL_LIBRARY=\"$TCL_LIBRARY\"" >> "$TMPSCRIPT.sh"
  33. echo "export TCL_LIBRARY" >> "$TMPSCRIPT.sh"
  34. fi
  35. if [ "$TK_LIBRARY" ] ; then
  36. echo "TK_LIBRARY=\"$TK_LIBRARY\"" >> "$TMPSCRIPT.sh"
  37. echo "export TK_LIBRARY" >> "$TMPSCRIPT.sh"
  38. fi
  39. # get command, ignore all other xterm flags
  40. while true ; do
  41. if [ "$1" = "-e" ] ; then break ; fi
  42. shift
  43. done
  44. shift
  45. # and add it to end of script
  46. echo "$@" >> "$TMPSCRIPT.sh"
  47. # execute
  48. # save current active app/window, return to it when script finishes.
  49. osascript - <<EOF
  50. --tell application "System Events"
  51. -- set save_app to item 1 of (get name of processes whose frontmost is true)
  52. --end tell
  53. tell application "Terminal"
  54. activate
  55. -- start new window with env/cmd script
  56. do script "$TMPSCRIPT.sh; exit"
  57. tell window 1
  58. -- wait for it to finish
  59. repeat while (processes is not equal to {})
  60. delay 1
  61. end repeat
  62. close
  63. end tell
  64. end tell
  65. --tell application save_app to activate
  66. EOF
  67. rm -f "$TMPSCRIPT.sh"
  68. fi