home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / lib / openoffice / program / senddoc < prev    next >
Encoding:
Text File  |  2006-08-01  |  6.8 KB  |  361 lines

  1. #!/bin/sh
  2. URI_ENCODE="awk -f `dirname $0`/uri-encode"
  3.  
  4. # tries to locate the executable specified 
  5. # as first parameter in the user's path.
  6. which() {
  7.     if [ ! -z "$1" ]; then
  8.         for i in `echo $PATH | sed -e 's/^:/.:/g' -e 's/:$/:./g' -e 's/::/:.:/g' -e 's/:/ /g'`; do
  9.             if [ -x "$i/$1" -a ! -d "$i/$1" ]; then
  10.                 echo "$i/$1"
  11.                 break;
  12.             fi
  13.         done
  14.     fi
  15. }
  16.  
  17. # checks for the original mozilla start script(s) 
  18. # and restrict the "-remote" semantics to those.
  19. run_mozilla() {
  20.     # find mozilla script in PATH if necessary
  21.     if [ "`basename $1`" = "$1" ]; then
  22.         moz=`which $1`
  23.     else
  24.         moz=$1
  25.     fi
  26.  
  27.     if file "$moz" | grep "script" > /dev/null && grep "NPL" "$moz" > /dev/null; then
  28.         "$moz" -remote 'ping()' 2>/dev/null >/dev/null
  29.         if [ $? -eq 2 ]; then
  30.             "$1" -compose "$2" &
  31.         else
  32.             "$1" -remote "xfeDoCommand(composeMessage,$2)" &
  33.         fi
  34.     else
  35.         "$1" -compose "$2" &
  36.     fi
  37. }
  38.  
  39. # restore search path for dynamic loader to system defaults to
  40. # avoid version clashes of mozilla libraries shipped with OOo
  41. case `uname -s` in
  42.     AIX)
  43.         LIBPATH=$SYSTEM_LIBPATH
  44.         if [ -z "$LIBPATH" ]; then
  45.             unset LIBPATH SYSTEM_LIBPATH
  46.         else
  47.             export LIBPATH; unset SYSTEM_LIBPATH
  48.         fi
  49.         ;;
  50.  
  51.     Darwin)
  52.         DYLD_LIBRARY_PATH=$SYSTEM_DYLD_LIBRARY_PATH
  53.         if [ -z "$DYLD_LIBRARY_PATH" ]; then
  54.             unset DYLD_LIBRARY_PATH SYSTEM_DYLD_LIBRARY_PATH
  55.         else
  56.             export DYLD_LIBRARY_PATH; unset SYSTEM_DYLD_LIBRARY_PATH
  57.         fi
  58.         ;;
  59.  
  60.     HP-UX)
  61.         SHLIB_PATH=$SYSTEM_SHLIB_PATH
  62.         if [ -z "$SHLIB_PATH" ]; then
  63.             unset SHLIB_PATH SYSTEM_SHLIB_PATH
  64.         else
  65.             export SHLIB_PATH; unset SYSTEM_SHLIB_PATH
  66.         fi
  67.         ;;
  68.  
  69.     IRIX*)
  70.         LD_LIBRARYN32_PATH=$SYSTEM_LD_LIBRARYN32_PATH
  71.         if [ -z "$LD_LIBRARYN32_PATH" ]; then
  72.             unset LD_LIBRARYN32_PATH SYSTEM_LD_LIBRARYN32_PATH
  73.         else
  74.             export LD_LIBRARYN32_PATH; unset $SYSTEM_LD_LIBRARYN32_PATH
  75.         fi
  76.         ;;
  77.  
  78.     *)
  79.         LD_LIBRARY_PATH=$SYSTEM_LD_LIBRARY_PATH
  80.         if [ -z "$LD_LIBRARY_PATH" ]; then
  81.             unset LD_LIBRARY_PATH SYSTEM_LD_LIBRARY_PATH
  82.         else
  83.             export LD_LIBRARY_PATH; unset SYSTEM_LD_LIBRARY_PATH
  84.         fi
  85.         ;;
  86. esac
  87.  
  88. if [ "$1" = "--mailclient" ]; then
  89.     shift
  90.     MAILER=$1
  91.     shift
  92. fi
  93.  
  94. case `basename "$MAILER"` in
  95.     sensible-ooomua)
  96.         if [ -n "$GNOME_DESKTOP_SESSION_ID" -a -x /usr/bin/evolution ]; then
  97.             MAILER=/usr/bin/evolution
  98.         elif [ -n "$KDE_FULL_SESSION" -a -x /usr/bin/kmail ]; then
  99.             MAILER=/usr/bin/kmail
  100.         elif [ -x /usr/bin/evolution ]; then
  101.             # default
  102.             MAILER=/usr/bin/evolution
  103.         fi
  104.         ;;
  105. esac
  106.  
  107. # autodetect mail client from executable name
  108. case `basename "$MAILER" | sed 's/-.*$//'` in
  109.  
  110.     mozilla | netscape | thunderbird)
  111.     
  112.         while [ "$1" != "" ]; do
  113.             case $1 in
  114.                 --to)
  115.                     TO=${TO:-}${TO:+,}$2
  116.                     shift
  117.                     ;;
  118.                 --cc)
  119.                     CC=${CC:-}${CC:+,}$2
  120.                     shift
  121.                     ;;
  122.                 --bcc)
  123.                     BCC=${BCC:-}${BCC:+,}$2
  124.                     shift
  125.                     ;;
  126.                 --subject)
  127.                     SUBJECT=$2
  128.                     shift
  129.                     ;;
  130.                 --body)
  131.                     BODY=$2
  132.                     shift
  133.                     ;;
  134.                 --attach)
  135.                     ATTACH=${ATTACH:-}${ATTACH:+,}`echo file://$2 | ${URI_ENCODE}`
  136.                     shift
  137.                     ;;
  138.                 *)
  139.                     ;;
  140.             esac
  141.             shift;
  142.         done
  143.  
  144.         if [ "$TO" != "" ]; then
  145.             COMMAND=${COMMAND:-}${COMMAND:+,}to=${TO}
  146.         fi
  147.         if [ "$CC" != "" ]; then
  148.             COMMAND=${COMMAND:-}${COMMAND:+,}cc=${CC}
  149.         fi
  150.         if [ "$BCC" != "" ]; then
  151.             COMMAND=${COMMAND:-}${COMMAND:+,}bcc=${BCC}
  152.         fi
  153.         if [ "$SUBJECT" != "" ]; then
  154.             COMMAND=${COMMAND:-}${COMMAND:+,}subject=${SUBJECT}
  155.         fi
  156.         if [ "$BODY" != "" ]; then
  157.             COMMAND=${COMMAND:-}${COMMAND:+,}body=${BODY}
  158.         fi
  159.         if [ "$ATTACH" != "" ]; then
  160.             COMMAND=${COMMAND:-}${COMMAND:+,}attachment=${ATTACH}
  161.         fi
  162.         
  163.         run_mozilla "$MAILER" "$COMMAND"
  164.         ;;
  165.         
  166.     kmail)
  167.     
  168.         while [ "$1" != "" ]; do
  169.             case $1 in
  170.                 --to)
  171.                     TO="${TO:-}${TO:+,}$2"
  172.                     shift
  173.                     ;;
  174.                 --cc)
  175.                     CC="${CC:-}${CC:+,}$2"
  176.                     shift
  177.                     ;;
  178.                 --bcc)
  179.                     BCC="${BCC:-}${BCC:+,}$2"
  180.                     shift
  181.                     ;;
  182.                 --subject)
  183.                     SUBJECT="$2"
  184.                     shift
  185.                     ;;
  186.                 --body)
  187.                     BODY="$2"
  188.                     shift
  189.                     ;;
  190.                 --attach)
  191.                     ATTACH="$2"
  192.                     shift
  193.                     ;;
  194.                 *)
  195.                     ;;
  196.             esac
  197.             shift;
  198.         done
  199.         
  200.         ${MAILER} --composer ${CC:+--cc} ${CC:+"${CC}"} ${BCC:+--bcc} ${BCC:+"${BCC}"} \
  201.             ${SUBJECT:+--subject} ${SUBJECT:+"${SUBJECT}"} ${BODY:+--body} ${BODY:+"${BODY}"} \
  202.             ${ATTACH:+--attach} ${ATTACH:+"${ATTACH}"} ${TO:+"${TO}"}
  203.         ;;
  204.         
  205.     evolution)
  206.     
  207.         while [ "$1" != "" ]; do
  208.             case $1 in
  209.                 --to)
  210.                     if [ "${TO}" != "" ]; then
  211.                         MAILTO="${MAILTO:-}${MAILTO:+&}to=$2"
  212.                     else
  213.                         TO="$2"
  214.                     fi
  215.                     shift
  216.                     ;;
  217.                 --cc)
  218.                     MAILTO="${MAILTO:-}${MAILTO:+&}cc=`echo $2| ${URI_ENCODE}`"
  219.                     shift
  220.                     ;;
  221.                 --bcc)
  222.                     MAILTO="${MAILTO:-}${MAILTO:+&}bcc=`echo $2| ${URI_ENCODE}`"
  223.                     shift
  224.                     ;;
  225.                 --subject)
  226.                     MAILTO="${MAILTO:-}${MAILTO:+&}subject=`echo $2 | ${URI_ENCODE}`"
  227.                     shift
  228.                     ;;
  229.                 --body)
  230.                     MAILTO="${MAILTO:-}${MAILTO:+&}body=`echo $2 | ${URI_ENCODE}`"
  231.                     shift
  232.                     ;;
  233.                 --attach)
  234.                     MAILTO="${MAILTO:-}${MAILTO:+&}attach=`echo file://$2 | ${URI_ENCODE}`"
  235.                     shift
  236.                     ;;
  237.                 *)
  238.                     ;;
  239.             esac
  240.             shift;
  241.         done
  242.         
  243.         MAILTO="mailto:${TO}?${MAILTO}"
  244.         ${MAILER} "${MAILTO}" &
  245.         ;;
  246.  
  247.     dtmail)
  248.      
  249.         while [ "$1" != "" ]; do
  250.             case $1 in
  251.                 --to)
  252.                     TO=${TO:-}${TO:+,}$2
  253.                     shift
  254.                     ;;
  255.                 --attach)
  256.                     ATTACH="$2"
  257.                     shift
  258.                     ;;
  259.                 *)
  260.                     ;;
  261.             esac
  262.             shift;
  263.         done
  264.          
  265.         ${MAILER} ${TO:+-T} ${TO:-} ${ATTACH:+-a} ${ATTACH:+"${ATTACH}"}
  266.         ;;
  267.  
  268.     sylpheed)
  269.      
  270.         while [ "$1" != "" ]; do
  271.             case $1 in
  272.                 --to)
  273.                     TO=${TO:-}${TO:+,}$2
  274.                     shift
  275.                     ;;
  276.                 --attach)
  277.                     ATTACH="${ATTACH:-}${ATTACH:+ } $2"
  278.                     shift
  279.                     ;;
  280.                 *)
  281.                     ;;
  282.             esac
  283.             shift;
  284.         done
  285.          
  286.          ${MAILER} ${TO:+--compose} ${TO:-} ${ATTACH:+--attach} ${ATTACH:-}
  287.         ;;
  288.  
  289.     Mail | Thunderbird | *.app )
  290.  
  291.         while [ "$1" != "" ]; do
  292.             case $1 in
  293.                 --attach)
  294.                     ATTACH="${ATTACH:-}${ATTACH:+ } $2"
  295.                     shift
  296.                     ;;
  297.                 *)
  298.                     ;;
  299.             esac
  300.             shift;
  301.         done
  302.          
  303.         /usr/bin/open -a "${MAILER}" ${ATTACH}
  304.         ;;
  305.  
  306.     "")
  307.     
  308.         # DESKTOP_LAUNCH, see http://freedesktop.org/pipermail/xdg/2004-August/004489.html
  309.         if [ -n "$DESKTOP_LAUNCH" ]; then
  310.             while [ "$1" != "" ]; do
  311.                 case $1 in
  312.                     --to)
  313.                         if [ "${TO}" != "" ]; then
  314.                             MAILTO="${MAILTO:-}${MAILTO:+&}to=$2"
  315.                         else
  316.                             TO="$2"
  317.                         fi
  318.                         shift
  319.                         ;;
  320.                     --cc)
  321.                         MAILTO="${MAILTO:-}${MAILTO:+&}cc=`echo $2| ${URI_ENCODE}`"
  322.                         shift
  323.                         ;;
  324.                     --bcc)
  325.                         MAILTO="${MAILTO:-}${MAILTO:+&}bcc=`echo $2| ${URI_ENCODE}`"
  326.                         shift
  327.                         ;;
  328.                     --subject)
  329.                         MAILTO="${MAILTO:-}${MAILTO:+&}subject=`echo $2 | ${URI_ENCODE}`"
  330.                         shift
  331.                         ;;
  332.                     --body)
  333.                         MAILTO="${MAILTO:-}${MAILTO:+&}body=`echo $2 | ${URI_ENCODE}`"
  334.                         shift
  335.                         ;;
  336.                     --attach)
  337.                         MAILTO="${MAILTO:-}${MAILTO:+&}attachment=`echo $2 | ${URI_ENCODE}`"
  338.                         shift
  339.                         ;;
  340.                     *)
  341.                         ;;
  342.                 esac
  343.                 shift;
  344.             done
  345.         
  346.             MAILTO="mailto:${TO}?${MAILTO}"
  347.             ${DESKTOP_LAUNCH} "${MAILTO}" &
  348.         else
  349.             echo "Could not determine a mail client to use."
  350.             exit 2
  351.         fi
  352.         ;;
  353.         
  354.     *)
  355.         echo "Unsupported mail client: `basename $MAILER | sed 's/-.*^//'`"
  356.         exit 2
  357.         ;;
  358. esac  
  359.   
  360. exit 0
  361.