X-Git-Url: https://diplodocus.org/git/nmh/blobdiff_plain/ed3214f1518b36c8b96a1a17be4af0a708ea25e3..5f34de43:/etc/mhn.defaults.sh?ds=inline diff --git a/etc/mhn.defaults.sh b/etc/mhn.defaults.sh index b7cecd51..0253f283 100755 --- a/etc/mhn.defaults.sh +++ b/etc/mhn.defaults.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#! /bin/sh # # mhn.defaults.sh -- create extra profile file for MIME handling # @@ -9,7 +9,7 @@ if [ -n "$1" ]; then SEARCHPATH=$1 else - SEARCHPATH="$PATH:/usr/demo/SOUND" + SEARCHPATH="$PATH" fi # If a search program is passed to the script, we @@ -25,78 +25,82 @@ fi TMP=/tmp/nmh_temp.$$ trap "rm -f $TMP" 0 1 2 3 13 15 - -if [ ! -z "`$SEARCHPROG $SEARCHPATH w3m`" ]; then - echo 'mhfixmsg-format-text/html: charset="%{charset}"; '"\ -"'w3m -dump -T text/html "${charset:+-I $charset}" -O utf-8 %F' >> $TMP -elif [ ! -z "`$SEARCHPROG $SEARCHPATH lynx`" ]; then - #### lynx indents with 3 spaces, remove them and any trailing spaces. - echo 'mhfixmsg-format-text/html: charset="%{charset}"; '"\ -"'lynx -child -dump -force_html "${charset:+--assume_charset $charset}" %F | '"\ -expand | sed -e 's/^ //' -e 's/ *$//'" >> $TMP -elif [ ! -z "`$SEARCHPROG $SEARCHPATH elinks`" ]; then - echo "mhfixmsg-format-text/html: elinks -dump -force-html -no-numbering \ --eval 'set document.browse.margin_width = 0' %F" >> $TMP +if [ ! -z `$SEARCHPROG "$SEARCHPATH" par` ]; then + #### The widths here correspond to those for the text browsers below. + textfmt=' | par 64' + replfmt=" | sed 's/^\(.\)/> \1/; s/^$/>/;' | par 64" +elif [ ! -z `$SEARCHPROG "$SEARCHPATH" fmt` ]; then + textfmt=' | fmt' + replfmt=" | fmt | sed 's/^\(.\)/> \1/; s/^$/>/;'" +else + textfmt= + replfmt= fi +[ ! -z `$SEARCHPROG "$SEARCHPATH" iconv` ] && + charsetconv=' | iconv -f ${charset:-us-ascii} -t utf-8'"${textfmt}" || + charsetconv= +cat >>"$TMP" <<'EOF' +mhstore-store-text: %m%P.txt +mhstore-store-text/calendar: %m%P.ics +mhstore-store-text/html: %m%P.html +mhstore-store-text/richtext: %m%P.rt +mhstore-store-video/mpeg: %m%P.mpg +mhstore-store-application/PostScript: %m%P.ps +EOF -echo "mhstore-store-text: %m%P.txt" >> $TMP -echo "mhstore-store-text/richtext: %m%P.rt" >> $TMP -echo "mhstore-store-video/mpeg: %m%P.mpg" >> $TMP -echo "mhstore-store-application/PostScript: %m%P.ps" >> $TMP - -PGM="`$SEARCHPROG $SEARCHPATH xwud`" +PGM=`$SEARCHPROG "$SEARCHPATH" xwud` if [ ! -z "$PGM" ]; then XWUD="$PGM" X11DIR="`echo $PGM | awk -F/ '{ for(i=2;i> $TMP + echo "mhshow-show-image: %l$PGM -geometry =-0+0 %f" >> $TMP elif [ ! -z $"NETPBM" -a ! -z "$XWUD" ]; then - echo "mhshow-show-image/gif: %p${NETPBMDIR}giftopnm | ${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP - echo "mhshow-show-image/x-pnm: %p${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP - echo "mhshow-show-image/x-pgm: %p${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP - echo "mhshow-show-image/x-ppm: %p${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP - echo "mhshow-show-image/x-xwd: %p$XWUD -geometry =-0+0" >> $TMP + echo "mhshow-show-image/gif: %l${NETPBMDIR}giftopnm | ${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP + echo "mhshow-show-image/x-pnm: %l${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP + echo "mhshow-show-image/x-pgm: %l${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP + echo "mhshow-show-image/x-ppm: %l${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP + echo "mhshow-show-image/x-xwd: %l$XWUD -geometry =-0+0" >> $TMP - PGM="`$SEARCHPROG $SEARCHPATH djpeg`" + PGM=`$SEARCHPROG "$SEARCHPATH" djpeg` if [ ! -z "$PGM" ]; then - echo "mhshow-show-image/jpeg: %p$PGM -Pg | ${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP + echo "mhshow-show-image/jpeg: %l$PGM -Pg | ${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP fi fi if [ -f "/dev/audioIU" ]; then - PGM="`$SEARCHPROG $SEARCHPATH recorder`" + PGM=`$SEARCHPROG "$SEARCHPATH" recorder` if [ ! -z "$PGM" ]; then echo "mhstore-store-audio/basic: %m%P.au" >> $TMP echo "mhbuild-compose-audio/basic: ${AUDIODIR}recorder %f -au -pause > /dev/tty" >> $TMP - echo "mhshow-show-audio/basic: %p${AUDIODIR}splayer -au" >> $TMP + echo "mhshow-show-audio/basic: %l${AUDIODIR}splayer -au" >> $TMP fi elif [ -f "/dev/audio" ]; then - PGM="`$SEARCHPROG $SEARCHPATH raw2audio`" + PGM=`$SEARCHPROG "$SEARCHPATH" raw2audio` if [ ! -z "$PGM" ]; then AUDIODIR="`echo $PGM | awk -F/ '{ for(i=2;i %m%P.au" >> $TMP echo "mhstore-store-audio/x-next: %m%P.au" >> $TMP - AUDIOTOOL="`$SEARCHPROG $SEARCHPATH audiotool`" + AUDIOTOOL=`$SEARCHPROG "$SEARCHPATH" audiotool` if [ ! -z "$AUDIOTOOL" ]; then echo "mhbuild-compose-audio/basic: $AUDIOTOOL %f && ${AUDIODIR}raw2audio -F < %f" >> $TMP else echo "mhbuild-compose-audio/basic: trap \"exit 0\" 2 && ${AUDIODIR}record | ${AUDIODIR}raw2audio -F" >> $TMP fi - echo "mhshow-show-audio/basic: %p${AUDIODIR}raw2audio 2>/dev/null | ${AUDIODIR}play" >> $TMP + echo "mhshow-show-audio/basic: %l${AUDIODIR}raw2audio 2>/dev/null | ${AUDIODIR}play" >> $TMP - PGM="`$SEARCHPROG $SEARCHPATH adpcm_enc`" + PGM=`$SEARCHPROG "$SEARCHPATH" adpcm_enc` if [ ! -z "$PGM" ]; then DIR="`echo $PGM | awk -F/ '{ for(i=2;i> $TMP fi - echo "mhshow-show-audio/x-next: %p${DIR}adpcm_dec | ${AUDIODIR}play" >> $TMP + echo "mhshow-show-audio/x-next: %l${DIR}adpcm_dec | ${AUDIODIR}play" >> $TMP else if [ ! -z "$AUDIOTOOL" ]; then echo "mhbuild-compose-audio/x-next: $AUDIOTOOL %f" >> $TMP else echo "mhbuild-compose-audio/x-next: ${AUDIODIR}record" >> $TMP fi - echo "mhshow-show-audio/x-next: %p${AUDIODIR}play" >> $TMP + echo "mhshow-show-audio/x-next: %l${AUDIODIR}play" >> $TMP fi else echo "mhbuild-compose-audio/basic: cat < /dev/audio" >> $TMP - echo "mhshow-show-audio/basic: %pcat > /dev/audio" >> $TMP + echo "mhshow-show-audio/basic: %lcat > /dev/audio" >> $TMP fi fi -PGM="`$SEARCHPROG $SEARCHPATH mpeg_play`" +#### +#### mhbuild-disposition-[/] entries are used by the +#### WhatNow attach for deciding whether the Content-Disposition +#### should be 'attachment' or 'inline'. Only those values are +#### supported. mhbuild-convert-text/html is defined below. +#### +cat <>${TMP} +mhbuild-convert-text/calendar: mhical -infile %F -contenttype +mhbuild-convert-text: charset=%{charset}; iconv -f \${charset:-us-ascii} -t utf-8 %F${replfmt} +mhbuild-disposition-text/calendar: inline +mhbuild-disposition-message/rfc822: inline +EOF + +PGM=`$SEARCHPROG "$SEARCHPATH" mpeg_play` if [ ! -z "$PGM" ]; then - echo "mhshow-show-video/mpeg: %p$PGM %f" >> $TMP + echo "mhshow-show-video/mpeg: %l$PGM %f" >> $TMP fi -PGM="`$SEARCHPROG $SEARCHPATH okular`" +PGM=`$SEARCHPROG "$SEARCHPATH" okular` if [ ! -z "$PGM" ]; then - echo "mhshow-show-application/PostScript: %pokular %F" >> $TMP + echo "mhshow-show-application/PostScript: %l$PGM %F" >> $TMP else - PGM="`$SEARCHPROG $SEARCHPATH evince`" + PGM=`$SEARCHPROG "$SEARCHPATH" evince` if [ ! -z "$PGM" ]; then - echo "mhshow-show-application/PostScript: %pevince %F" >> $TMP + echo "mhshow-show-application/PostScript: %l$PGM %F" >> $TMP else - PGM="`$SEARCHPROG $SEARCHPATH gv`" + PGM=`$SEARCHPROG "$SEARCHPATH" gv` if [ ! -z "$PGM" ]; then - echo "mhshow-show-application/PostScript: %pgv %F" >> $TMP + echo "mhshow-show-application/PostScript: %l$PGM %F" >> $TMP fi fi fi -PGM="`$SEARCHPROG $SEARCHPATH ivs_replay`" +PGM=`$SEARCHPROG "$SEARCHPATH" acroread` if [ ! -z "$PGM" ]; then - echo "mhshow-show-application/x-ivs: %p$PGM -o %F" >> $TMP + echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP +else + PGM=`$SEARCHPROG "$SEARCHPATH" okular` + if [ ! -z "$PGM" ]; then + echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP + else + PGM=`$SEARCHPROG "$SEARCHPATH" evince` + if [ ! -z "$PGM" ]; then + echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP + else + PGM=`$SEARCHPROG "$SEARCHPATH" xpdf` + if [ ! -z "$PGM" ]; then + echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP + else + PGM=`$SEARCHPROG "$SEARCHPATH" gv` + if [ ! -z "$PGM" ]; then + echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP + fi + fi + fi + fi +fi + +echo "mhshow-show-text/calendar: mhical -infile %F" >> $TMP +echo "mhshow-show-application/ics: mhical -infile %F" >> $TMP +echo "mhfixmsg-format-text/calendar: mhical -infile %F" >> $TMP +echo "mhfixmsg-format-application/ics: mhical -infile %F" >> $TMP + +PGM=`$SEARCHPROG "$SEARCHPATH" ivs_replay` +if [ ! -z "$PGM" ]; then + echo "mhshow-show-application/x-ivs: %l$PGM -o %F" >> $TMP fi # The application/vnd.openxmlformats-officedocument.wordprocessingml.document @@ -217,6 +264,7 @@ mhshow-suffix-image/jpeg: .jpg mhshow-suffix-image/png: .png mhshow-suffix-image/tiff: .tif mhshow-suffix-image/tiff: .tiff +mhshow-suffix-text: .txt mhshow-suffix-text/calendar: .ics mhshow-suffix-text/css: .css mhshow-suffix-text/html: .html @@ -237,56 +285,93 @@ EOF # but only once I've added a new %-escape that makes more permanent temp files, # so netscape -remote can be used (without -remote you get a complaint dialog # that another netscape is already running and certain things can't be done). -PGM="`$SEARCHPROG $SEARCHPATH lynx`" +PGM=`$SEARCHPROG "$SEARCHPATH" w3m` if [ ! -z "$PGM" ]; then - echo 'mhshow-show-text/html: charset="%{charset}"; '"\ -%p$PGM"' -force-html "${charset:+--assume_charset $charset}" %F' >> $TMP + echo 'mhshow-show-text/html: charset=%{charset}; '"\ +%l$PGM"' -dump ${charset:+-I} ${charset:+"$charset"} -T text/html %F' >> $TMP + echo 'mhfixmsg-format-text/html: charset=%{charset}; '"\ +$PGM "'-dump ${charset:+-I} ${charset:+"$charset"} -O utf-8 -T text/html %F' \ + >> $TMP + echo 'mhbuild-convert-text/html: charset=%{charset}; '"\ +$PGM "'-dump ${charset:+-I} ${charset:+"$charset"} -O utf-8 -T text/html %F '"\ +${replfmt}" >> $TMP else - PGM="`$SEARCHPROG $SEARCHPATH w3m`" - if [ ! -z "$PGM" ]; then - echo 'mhshow-show-text/html: charset="%{charset}"; '"\ -%p$PGM"' "${charset:+-I $charset}" -T text/html %F' >> $TMP - fi + PGM=`$SEARCHPROG "$SEARCHPATH" lynx` + if [ ! -z "$PGM" ]; then + echo 'mhshow-show-text/html: charset=%{charset}; '"\ +%l$PGM"' -child -dump -force-html ${charset:+--assume_charset} ${charset:+"$charset"} %F' >> $TMP + #### lynx indents with 3 spaces, remove them and any trailing spaces. + echo 'mhfixmsg-format-text/html: charset=%{charset}; '"\ +$PGM "'-child -dump -force_html ${charset:+--assume_charset} ${charset:+"$charset"} %F | '"\ +expand | sed -e 's/^ //' -e 's/ *$//'" >> $TMP + echo 'mhbuild-convert-text/html: charset=%{charset}; '"\ +$PGM "'-child -dump -force_html ${charset:+--assume_charset} ${charset:+"$charset"} '"\ +%F${replfmt}" >> $TMP + else + PGM=`$SEARCHPROG "$SEARCHPATH" elinks` + if [ ! -z "$PGM" ]; then + echo "mhshow-show-text/html: %l$PGM -dump -force-html \ +-eval 'set document.browse.margin_width = 0' %F" >> $TMP + echo "mhfixmsg-format-text/html: $PGM -dump -force-html \ +-no-numbering -eval 'set document.browse.margin_width = 0' %F" >> $TMP + echo "mhbuild-convert-text/html: $PGM -dump -force-html \ +-no-numbering -eval 'set document.browse.margin_width = 0' %F${replfmt}" >> $TMP + else + echo 'mhbuild-convert-text/html: cat %F' >> $TMP + fi + fi fi -PGM="`$SEARCHPROG $SEARCHPATH richtext`" +PGM=`$SEARCHPROG "$SEARCHPATH" richtext` if [ ! -z "$PGM" ]; then - echo "mhshow-show-text/richtext: %p$PGM -p %F" >> $TMP + echo "mhshow-show-text/richtext: %l$PGM -p %F" >> $TMP else - PGM="`$SEARCHPROG $SEARCHPATH rt2raw`" + PGM=`$SEARCHPROG "$SEARCHPATH" rt2raw` if [ ! -z "$PGM" ]; then - echo "mhshow-show-text/richtext: %p$PGM < %f | fmt -78 | more" >> $TMP + echo "mhshow-show-text/richtext: %l$PGM < %f | fmt -78 | more" >> $TMP fi fi # staroffice to read .doc files -PGM="`$SEARCHPROG $SEARCHPATH soffice`" +PGM=`$SEARCHPROG "$SEARCHPATH" soffice` if [ ! -z "$PGM" ]; then - echo "mhshow-show-application/msword: %psoffice %F" >> $TMP - echo "mhshow-suffix-application/msword: .doc" >> $TMP + echo "mhshow-show-application/msword: %l$PGM %F" >> $TMP fi -# output a sorted version of the file -sort < $TMP +# This entry is used to retrieve external-body types that use a "url" +# access-type. +case "`uname`" in + FreeBSD) + echo "nmh-access-url: fetch -o -" >> $TMP + ;; + *) + PGM=`$SEARCHPROG "$SEARCHPATH" curl` + if [ ! -z "$PGM" ]; then + echo "nmh-access-url: $PGM -L" >> $TMP + fi + ;; +esac + +# Output a sorted version of the file, along with some comments in +# appropriate places. +echo '#: This file was generated by mhn.defaults.sh.' +sort < $TMP | \ + sed -e 's|^\(mhshow-show-application/ics:.*\)|#: might need -notextonly -noinlineonly or -part/-type to show application/ics parts\n\1|' exit 0 -: not until we get a "safe" postscript environment... -PGM="`$SEARCHPROG $SEARCHPATH pageview`" -if [ "$DISPLAY" = "unix:0.0" -a ! -z "$PGM" ]; then - echo "mhshow-show-application/PostScript: %p$PGM -" >> $TMP -else - PGM="`$SEARCHPROG $SEARCHPATH gs`" - if [ ! -z "$PGM" ]; then - echo "mhshow-show-application/PostScript: %p$PGM -- %F" >> $TMP - echo "mhshow-suffix-application/PostScript: .ps" >> $TMP - fi -fi +############################################################################### +############################################################################### +#### +#### Note the exit 0 above; everything below is unused. +#### +############################################################################### +############################################################################### : have to experiment more with this -PGM="`$SEARCHPROG $SEARCHPATH ivs_record`" +PGM=`$SEARCHPROG "$SEARCHPATH" ivs_record` if [ ! -z "$PGM" ]; then echo "mhbuild-compose-application/x-ivs: $PGM -u localhost %F" >> $TMP fi