Implement quick and easy disable of xdg-open usage.
[midnight-commander.git] / misc / ext.d / text.sh.in
blob81f3b8ec920e99f0c52db4890c2a506fa6e2c463
1 #!/bin/sh
3 # $1 - action
4 # $2 - type of archive
5 # $3 - pager
7 action=$1
8 filetype=$2
9 pager=$3
11 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open"
13 get_unpacker() {
14 filetype=$1
15 case "${filetype}" in
16 man.gz)
17 unpacker="gzip -dc"
19 man.bz)
20 unpacker="bzip -dc"
22 man.bz2)
23 unpacker="bzip2 -dc"
25 man.lzma)
26 unpacker="lzma -dc"
28 man.xz)
29 unpacker="xz -dc"
31 esac
32 echo ${unpacker}
36 do_view_action() {
37 filetype=$1
39 unpacker=`get_unpacker ${filetype}`
41 case "${filetype}" in
42 man)
43 case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
44 */log/*|*/logs/*)
45 cat "${MC_EXT_FILENAME}"
48 { zsoelim "${MC_EXT_FILENAME}" 2>/dev/null || cat "${MC_EXT_FILENAME}"; } | nroff @MAN_FLAGS@ @MANDOC@
50 esac
52 pod)
53 pod2man "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
55 nroff.me)
56 nroff @MAN_FLAGS@ -me "${MC_EXT_FILENAME}"
58 nroff.ms)
59 nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}"
61 man.gz|man.bz|man.bz2|man.lzma|man.xz)
62 case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
63 */log/*|*/logs/*)
64 ${unpacker} "${MC_EXT_FILENAME}"
67 ${unpacker} "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
69 esac
73 esac
76 do_open_action() {
77 filetype=$1
78 pager=$2
80 unpacker=`get_unpacker ${filetype}`
82 case "${filetype}" in
83 info)
84 info -f "${MC_EXT_FILENAME}"
86 man)
87 case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
88 */log/*|*/logs/*)
89 cat "${MC_EXT_FILENAME}"
92 { zsoelim "${MC_EXT_FILENAME}" 2>/dev/null || cat "${MC_EXT_FILENAME}"; } | \
93 nroff @MAN_FLAGS@ @MANDOC@
95 esac | ${pager}
97 pod)
98 pod2man "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@ | ${pager}
100 nroff.me)
101 nroff @MAN_FLAGS@ -me "${MC_EXT_FILENAME}" | ${pager}
103 nroff.ms)
104 nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}" | ${pager}
106 man.gz|man.bz|man.bz2|man.lzma|man.xz)
107 case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
108 */log/*|*/logs/*)
109 ${unpacker} "${MC_EXT_FILENAME}"
112 ${unpacker} "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
114 esac | ${pager}
116 chm)
117 if [ -n "$DISPLAY" ]; then
118 which kchmviewer > /dev/null 2>&1 \
119 && (kchmviewer "${MC_EXT_FILENAME}" &) \
120 || (xchm "${MC_EXT_FILENAME}" &)
121 else
122 chm_http "${MC_EXT_FILENAME}" & elinks http://localhost:8080/index.html
123 kill -INT %1
128 esac
131 case "${action}" in
132 view)
133 do_view_action "${filetype}"
135 open)
136 "${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" 2>/dev/null || \
137 do_open_action "${filetype}" "${pager}"
141 esac