]>
diplodocus.org Git - nmh/blob - etc/mhn.defaults.sh
3 # mhn.defaults.sh -- create extra profile file for MIME handling
5 # USAGE: mhn.defaults.sh [ search-path [ search-prog ]]
7 # If a search path is passed to the script, we
8 # use that, else we use a default search path.
15 # If a search program is passed to the script, we
16 # use that, else we use a default search program.
20 SEARCHPROG
="mhn.find.sh"
23 # put output into a temporary file, so we
24 # can sort it before output.
26 trap "rm -f $TMP" 0 1 2 3 13 15
28 if [ ! -z `$SEARCHPROG "$SEARCHPATH" par` ]; then
29 #### The widths here correspond to those for the text browsers below.
31 replfmt
=" | sed 's/^\(.\)/> \1/; s/^$/>/;' | par 64"
32 elif [ ! -z `$SEARCHPROG "$SEARCHPATH" fmt` ]; then
34 replfmt
=" | fmt | sed 's/^\(.\)/> \1/; s/^$/>/;'"
39 [ ! -z `$SEARCHPROG "$SEARCHPATH" iconv` ] &&
40 charsetconv
=' | iconv -f ${charset:-us-ascii} -t utf-8'"${textfmt}" ||
44 mhstore-store-text: %m%P.txt
45 mhstore-store-text/calendar: %m%P.ics
46 mhstore-store-text/html: %m%P.html
47 mhstore-store-text/richtext: %m%P.rt
48 mhstore-store-video/mpeg: %m%P.mpg
49 mhstore-store-application/PostScript: %m%P.ps
52 PGM
=`$SEARCHPROG "$SEARCHPATH" xwud`
53 if [ ! -z "$PGM" ]; then
54 XWUD
="$PGM" X11DIR
="`echo $PGM | awk -F/ '{ for(i=2;i<NF;i++)printf "/%s
", $i;}'`"/
59 PGM
=`$SEARCHPROG "$SEARCHPATH" pnmtoxwd`
60 if [ ! -z "$PGM" ]; then
61 NETPBM
="$PGM" NETPBMDIR
="`echo $PGM | awk -F/ '{ for(i=2;i<NF;i++)printf "/%s
", $i;}'`"/
66 PGM
=`$SEARCHPROG "$SEARCHPATH" xv`
67 if [ ! -z "$PGM" ]; then
68 echo "mhshow-show-image: %l$PGM -geometry =-0+0 %f" >> $TMP
69 elif [ ! -z $
"NETPBM" -a ! -z "$XWUD" ]; then
70 echo "mhshow-show-image/gif: %l${NETPBMDIR}giftopnm | ${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP
71 echo "mhshow-show-image/x-pnm: %l${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP
72 echo "mhshow-show-image/x-pgm: %l${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP
73 echo "mhshow-show-image/x-ppm: %l${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP
74 echo "mhshow-show-image/x-xwd: %l$XWUD -geometry =-0+0" >> $TMP
76 PGM
=`$SEARCHPROG "$SEARCHPATH" djpeg`
77 if [ ! -z "$PGM" ]; then
78 echo "mhshow-show-image/jpeg: %l$PGM -Pg | ${NETPBMDIR}ppmtopgm | ${NETPBMDIR}pgmtopbm | ${NETPBMDIR}pnmtoxwd | $XWUD -geometry =-0+0" >> $TMP
82 if [ -f "/dev/audioIU" ]; then
83 PGM
=`$SEARCHPROG "$SEARCHPATH" recorder`
84 if [ ! -z "$PGM" ]; then
85 echo "mhstore-store-audio/basic: %m%P.au" >> $TMP
86 echo "mhbuild-compose-audio/basic: ${AUDIODIR}recorder %f -au -pause > /dev/tty" >> $TMP
87 echo "mhshow-show-audio/basic: %l${AUDIODIR}splayer -au" >> $TMP
89 elif [ -f "/dev/audio" ]; then
90 PGM
=`$SEARCHPROG "$SEARCHPATH" raw2audio`
91 if [ ! -z "$PGM" ]; then
92 AUDIODIR
="`echo $PGM | awk -F/ '{ for(i=2;i<NF;i++)printf "/%s
", $i;}'`"/
93 echo "mhstore-store-audio/basic: | ${AUDIODIR}raw2audio -e ulaw -s 8000 -c 1 > %m%P.au" >> $TMP
94 echo "mhstore-store-audio/x-next: %m%P.au" >> $TMP
95 AUDIOTOOL
=`$SEARCHPROG "$SEARCHPATH" audiotool`
96 if [ ! -z "$AUDIOTOOL" ]; then
97 echo "mhbuild-compose-audio/basic: $AUDIOTOOL %f && ${AUDIODIR}raw2audio -F < %f" >> $TMP
99 echo "mhbuild-compose-audio/basic: trap \"exit 0\" 2 && ${AUDIODIR}record | ${AUDIODIR}raw2audio -F" >> $TMP
101 echo "mhshow-show-audio/basic: %l${AUDIODIR}raw2audio 2>/dev/null | ${AUDIODIR}play" >> $TMP
103 PGM
=`$SEARCHPROG "$SEARCHPATH" adpcm_enc`
104 if [ ! -z "$PGM" ]; then
105 DIR
="`echo $PGM | awk -F/ '{ for(i=2;i<NF;i++)printf "/%s
", $i;}'`"/
106 if [ ! -z "$AUDIOTOOL" ]; then
107 echo "mhbuild-compose-audio/x-next: $AUDIOTOOL %f && ${DIR}adpcm_enc < %f" >> $TMP
109 echo "mhbuild-compose-audio/x-next: ${AUDIODIR}record | ${DIR}adpcm_enc" >> $TMP
111 echo "mhshow-show-audio/x-next: %l${DIR}adpcm_dec | ${AUDIODIR}play" >> $TMP
113 if [ ! -z "$AUDIOTOOL" ]; then
114 echo "mhbuild-compose-audio/x-next: $AUDIOTOOL %f" >> $TMP
116 echo "mhbuild-compose-audio/x-next: ${AUDIODIR}record" >> $TMP
118 echo "mhshow-show-audio/x-next: %l${AUDIODIR}play" >> $TMP
121 echo "mhbuild-compose-audio/basic: cat < /dev/audio" >> $TMP
122 echo "mhshow-show-audio/basic: %lcat > /dev/audio" >> $TMP
127 #### mhbuild-disposition-<type>[/<subtype>] entries are used by the
128 #### WhatNow attach for deciding whether the Content-Disposition
129 #### should be 'attachment' or 'inline'. Only those values are
130 #### supported. mhbuild-convert-text/html is defined below.
133 mhbuild-convert-text/calendar: mhical -infile %F -contenttype
134 mhbuild-convert-text: charset=%{charset}; iconv -f \${charset:-us-ascii} -t utf-8 %F${replfmt}
135 mhbuild-disposition-text/calendar: inline
136 mhbuild-disposition-message/rfc822: inline
139 PGM
=`$SEARCHPROG "$SEARCHPATH" mpeg_play`
140 if [ ! -z "$PGM" ]; then
141 echo "mhshow-show-video/mpeg: %l$PGM %f" >> $TMP
144 PGM
=`$SEARCHPROG "$SEARCHPATH" okular`
145 if [ ! -z "$PGM" ]; then
146 echo "mhshow-show-application/PostScript: %l$PGM %F" >> $TMP
148 PGM
=`$SEARCHPROG "$SEARCHPATH" evince`
149 if [ ! -z "$PGM" ]; then
150 echo "mhshow-show-application/PostScript: %l$PGM %F" >> $TMP
152 PGM
=`$SEARCHPROG "$SEARCHPATH" gv`
153 if [ ! -z "$PGM" ]; then
154 echo "mhshow-show-application/PostScript: %l$PGM %F" >> $TMP
159 PGM
=`$SEARCHPROG "$SEARCHPATH" acroread`
160 if [ ! -z "$PGM" ]; then
161 echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP
163 PGM
=`$SEARCHPROG "$SEARCHPATH" okular`
164 if [ ! -z "$PGM" ]; then
165 echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP
167 PGM
=`$SEARCHPROG "$SEARCHPATH" evince`
168 if [ ! -z "$PGM" ]; then
169 echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP
171 PGM
=`$SEARCHPROG "$SEARCHPATH" xpdf`
172 if [ ! -z "$PGM" ]; then
173 echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP
175 PGM
=`$SEARCHPROG "$SEARCHPATH" gv`
176 if [ ! -z "$PGM" ]; then
177 echo "mhshow-show-application/pdf: %l$PGM %F" >> $TMP
184 echo "mhshow-show-text/calendar: mhical -infile %F" >> $TMP
185 echo "mhshow-show-application/ics: mhical -infile %F" >> $TMP
186 echo "mhfixmsg-format-text/calendar: mhical -infile %F" >> $TMP
187 echo "mhfixmsg-format-application/ics: mhical -infile %F" >> $TMP
189 PGM
=`$SEARCHPROG "$SEARCHPATH" ivs_replay`
190 if [ ! -z "$PGM" ]; then
191 echo "mhshow-show-application/x-ivs: %l$PGM -o %F" >> $TMP
194 # The application/vnd.openxmlformats-officedocument.wordprocessingml.document
195 # through application/onenote associations are from
196 # http://technet.microsoft.com/en-us/library/cc179224.aspx
199 mhshow-suffix-application/msword: .doc
200 mhshow-suffix-application/ogg: .ogg
201 mhshow-suffix-application/pdf: .pdf
202 mhshow-suffix-application/postscript: .ps
203 mhshow-suffix-application/rtf: .rtf
204 mhshow-suffix-application/vnd.ms-excel: .xla
205 mhshow-suffix-application/vnd.ms-excel: .xlc
206 mhshow-suffix-application/vnd.ms-excel: .xld
207 mhshow-suffix-application/vnd.ms-excel: .xll
208 mhshow-suffix-application/vnd.ms-excel: .xlm
209 mhshow-suffix-application/vnd.ms-excel: .xls
210 mhshow-suffix-application/vnd.ms-excel: .xlt
211 mhshow-suffix-application/vnd.ms-excel: .xlw
212 mhshow-suffix-application/vnd.ms-powerpoint: .pot
213 mhshow-suffix-application/vnd.ms-powerpoint: .pps
214 mhshow-suffix-application/vnd.ms-powerpoint: .ppt
215 mhshow-suffix-application/vnd.ms-powerpoint: .ppz
216 mhshow-suffix-application/vnd.openxmlformats-officedocument.wordprocessingml.document: .docx
217 mhshow-suffix-application/vnd.ms-word.document.macroEnabled.12: .docm
218 mhshow-suffix-application/vnd.openxmlformats-officedocument.wordprocessingml.template: .dotx
219 mhshow-suffix-application/vnd.ms-word.template.macroEnabled.12: .dotm
220 mhshow-suffix-application/vnd.openxmlformats-officedocument.spreadsheetml.sheet: .xlsx
221 mhshow-suffix-application/vnd.ms-excel.sheet.macroEnabled.12: .xlsm
222 mhshow-suffix-application/vnd.openxmlformats-officedocument.spreadsheetml.template: .xltx
223 mhshow-suffix-application/vnd.ms-excel.template.macroEnabled.12: .xltm
224 mhshow-suffix-application/vnd.ms-excel.sheet.binary.macroEnabled.12: .xlsb
225 mhshow-suffix-application/vnd.ms-excel.addin.macroEnabled.12: .xlam
226 mhshow-suffix-application/vnd.openxmlformats-officedocument.presentationml.presentation: .pptx
227 mhshow-suffix-application/vnd.ms-powerpoint.presentation.macroEnabled.12: .pptm
228 mhshow-suffix-application/vnd.openxmlformats-officedocument.presentationml.slideshow: .ppsx
229 mhshow-suffix-application/vnd.ms-powerpoint.slideshow.macroEnabled.12: .ppsm
230 mhshow-suffix-application/vnd.openxmlformats-officedocument.presentationml.template: .potx
231 mhshow-suffix-application/vnd.ms-powerpoint.template.macroEnabled.12: .potm
232 mhshow-suffix-application/vnd.ms-powerpoint.addin.macroEnabled.12: .ppam
233 mhshow-suffix-application/vnd.openxmlformats-officedocument.presentationml.slide: .sldx
234 mhshow-suffix-application/vnd.ms-powerpoint.slide.macroEnabled.12: .sldm
235 mhshow-suffix-application/onenote: .onetoc
236 mhshow-suffix-application/onenote: .onetoc2
237 mhshow-suffix-application/onenote: .onetmp
238 mhshow-suffix-application/onenote: .onepkg
239 mhshow-suffix-application/x-bzip2: .bz2
240 mhshow-suffix-application/x-cpio: .cpio
241 mhshow-suffix-application/x-dvi: .dvi
242 mhshow-suffix-application/x-gzip: .gz
243 mhshow-suffix-application/x-java-archive: .jar
244 mhshow-suffix-application/x-javascript: .js
245 mhshow-suffix-application/x-latex: .latex
246 mhshow-suffix-application/x-sh: .sh
247 mhshow-suffix-application/x-tar: .tar
248 mhshow-suffix-application/x-texinfo: .texinfo
249 mhshow-suffix-application/x-tex: .tex
250 mhshow-suffix-application/x-troff-man: .man
251 mhshow-suffix-application/x-troff-me: .me
252 mhshow-suffix-application/x-troff-ms: .ms
253 mhshow-suffix-application/x-troff: .t
254 mhshow-suffix-application/zip: .zip
255 mhshow-suffix-audio/basic: .au
256 mhshow-suffix-audio/midi: .midi
257 mhshow-suffix-audio/mpeg: .mp3
258 mhshow-suffix-audio/mpeg: .mpg
259 mhshow-suffix-audio/x-ms-wma: .wma
260 mhshow-suffix-audio/x-wav: .wav
261 mhshow-suffix-image/gif: .gif
262 mhshow-suffix-image/jpeg: .jpeg
263 mhshow-suffix-image/jpeg: .jpg
264 mhshow-suffix-image/png: .png
265 mhshow-suffix-image/tiff: .tif
266 mhshow-suffix-image/tiff: .tiff
267 mhshow-suffix-text: .txt
268 mhshow-suffix-text/calendar: .ics
269 mhshow-suffix-text/css: .css
270 mhshow-suffix-text/html: .html
271 mhshow-suffix-text/rtf: .rtf
272 mhshow-suffix-text/sgml: .sgml
273 mhshow-suffix-text/xml: .xml
274 mhshow-suffix-video/mpeg: .mpeg
275 mhshow-suffix-video/mpeg: .mpg
276 mhshow-suffix-video/quicktime: .moov
277 mhshow-suffix-video/quicktime: .mov
278 mhshow-suffix-video/quicktime: .qt
279 mhshow-suffix-video/quicktime: .qtvr
280 mhshow-suffix-video/x-msvideo: .avi
281 mhshow-suffix-video/x-ms-wmv: .wmv
284 # I'd like to check if netscape is available and use it preferentially to lynx,
285 # but only once I've added a new %-escape that makes more permanent temp files,
286 # so netscape -remote can be used (without -remote you get a complaint dialog
287 # that another netscape is already running and certain things can't be done).
288 PGM
=`$SEARCHPROG "$SEARCHPATH" w3m`
289 if [ ! -z "$PGM" ]; then
290 echo 'mhshow-show-text/html: charset=%{charset}; '"\
291 %l$PGM"' -dump ${charset:+-I} ${charset:+"$charset"} -T text/html %F' >> $TMP
292 echo 'mhfixmsg-format-text/html: charset=%{charset}; '"\
293 $PGM "'-dump ${charset:+-I} ${charset:+"$charset"} -O utf-8 -T text/html %F' \
295 echo 'mhbuild-convert-text/html: charset=%{charset}; '"\
296 $PGM "'-dump ${charset:+-I} ${charset:+"$charset"} -O utf-8 -T text/html %F '"\
299 PGM
=`$SEARCHPROG "$SEARCHPATH" lynx`
300 if [ ! -z "$PGM" ]; then
301 echo 'mhshow-show-text/html: charset=%{charset}; '"\
302 %l$PGM"' -child -dump -force-html ${charset:+--assume_charset} ${charset:+"$charset"} %F' >> $TMP
303 #### lynx indents with 3 spaces, remove them and any trailing spaces.
304 echo 'mhfixmsg-format-text/html: charset=%{charset}; '"\
305 $PGM "'-child -dump -force_html ${charset:+--assume_charset} ${charset:+"$charset"} %F | '"\
306 expand | sed -e 's/^ //' -e 's/ *$//'" >> $TMP
307 echo 'mhbuild-convert-text/html: charset=%{charset}; '"\
308 $PGM "'-child -dump -force_html ${charset:+--assume_charset} ${charset:+"$charset"} '"\
309 %F${replfmt}" >> $TMP
311 PGM
=`$SEARCHPROG "$SEARCHPATH" elinks`
312 if [ ! -z "$PGM" ]; then
313 echo "mhshow-show-text/html: %l$PGM -dump -force-html \
314 -eval 'set document.browse.margin_width = 0' %F" >> $TMP
315 echo "mhfixmsg-format-text/html: $PGM -dump -force-html \
316 -no-numbering -eval 'set document.browse.margin_width = 0' %F" >> $TMP
317 echo "mhbuild-convert-text/html: $PGM -dump -force-html \
318 -no-numbering -eval 'set document.browse.margin_width = 0' %F${replfmt}" >> $TMP
320 echo 'mhbuild-convert-text/html: cat %F' >> $TMP
325 PGM
=`$SEARCHPROG "$SEARCHPATH" richtext`
326 if [ ! -z "$PGM" ]; then
327 echo "mhshow-show-text/richtext: %l$PGM -p %F" >> $TMP
329 PGM
=`$SEARCHPROG "$SEARCHPATH" rt2raw`
330 if [ ! -z "$PGM" ]; then
331 echo "mhshow-show-text/richtext: %l$PGM < %f | fmt -78 | more" >> $TMP
335 # staroffice to read .doc files
336 PGM
=`$SEARCHPROG "$SEARCHPATH" soffice`
337 if [ ! -z "$PGM" ]; then
338 echo "mhshow-show-application/msword: %l$PGM %F" >> $TMP
341 # This entry is used to retrieve external-body types that use a "url"
345 echo "nmh-access-url: fetch -o -" >> $TMP
348 PGM
=`$SEARCHPROG "$SEARCHPATH" curl`
349 if [ ! -z "$PGM" ]; then
350 echo "nmh-access-url: $PGM -L" >> $TMP
355 # Output a sorted version of the file, along with some comments in
356 # appropriate places.
357 echo '#: This file was generated by mhn.defaults.sh.'
359 sed -e 's|^\(mhshow-show-application/ics:.*\)|#: might need -notextonly -noinlineonly or -part/-type to show application/ics parts\n\1|'
364 ###############################################################################
365 ###############################################################################
367 #### Note the exit 0 above; everything below is unused.
369 ###############################################################################
370 ###############################################################################
372 : have to experiment
more with this
374 PGM
=`$SEARCHPROG "$SEARCHPATH" ivs_record`
375 if [ ! -z "$PGM" ]; then
376 echo "mhbuild-compose-application/x-ivs: $PGM -u localhost %F" >> $TMP