Ticket #4536: skins: add root variant of julia256 skin.
[midnight-commander.git] / misc / ext.d / text.sh.in
blob357f9e11dfb9cc94edca551dd2129e885646aef7
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.lz)
26 unpacker="lzip -dc"
28 man.lz4)
29 unpacker="lz4 -dc"
31 man.lzma)
32 unpacker="lzma -dc"
34 man.lzo)
35 unpacker="lzop -dc"
37 man.xz)
38 unpacker="xz -dc"
40 man.zst)
41 unpacker="zstd -dc"
43 esac
44 echo ${unpacker}
48 do_view_action() {
49 filetype=$1
51 unpacker=`get_unpacker ${filetype}`
53 case "${filetype}" in
54 man)
55 case "${MC_EXT_FILENAME}" in
56 */log/*|*/logs/*)
57 cat "${MC_EXT_FILENAME}"
60 MANROFFOPT=-c MAN_KEEP_FORMATTING=1 man -P cat "${MC_EXT_FILENAME}"
62 esac
64 pod)
65 pod2man "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
67 nroff.me)
68 nroff @MAN_FLAGS@ -me "${MC_EXT_FILENAME}"
70 nroff.ms)
71 nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}"
73 man.gz|man.bz|man.bz2|man.lz|man.lz4|man.lzma|man.lzo|man.xz|man.zst)
74 case "${MC_EXT_FILENAME}" in
75 */log/*|*/logs/*)
76 ${unpacker} "${MC_EXT_FILENAME}"
79 # "man" takes care of uncompressing.
80 # This way the stdin is left intact so the correct width is used.
81 MANROFFOPT=-c MAN_KEEP_FORMATTING=1 man -P cat "${MC_EXT_FILENAME}"
83 esac
87 esac
90 do_open_action() {
91 filetype=$1
92 pager=$2
94 unpacker=`get_unpacker ${filetype}`
96 case "${filetype}" in
97 info)
98 info -f "${MC_EXT_FILENAME}"
100 man)
101 case "${MC_EXT_FILENAME}" in
102 */log/*|*/logs/*)
103 cat "${MC_EXT_FILENAME}"
106 { zsoelim "${MC_EXT_FILENAME}" 2>/dev/null || cat "${MC_EXT_FILENAME}"; } | \
107 nroff @MAN_FLAGS@ @MANDOC@
109 esac | ${pager}
111 pod)
112 pod2man "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@ | ${pager}
114 nroff.me)
115 nroff @MAN_FLAGS@ -me "${MC_EXT_FILENAME}" | ${pager}
117 nroff.ms)
118 nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}" | ${pager}
120 man.gz|man.bz|man.bz2|man.lz|man.lz4|man.lzma|man.lzo|man.xz|man.zst)
121 case "${MC_EXT_FILENAME}" in
122 */log/*|*/logs/*)
123 ${unpacker} "${MC_EXT_FILENAME}"
126 ${unpacker} "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
128 esac | ${pager}
130 chm)
131 if [ -n "$DISPLAY" ]; then
132 which kchmviewer > /dev/null 2>&1 \
133 && (kchmviewer "${MC_EXT_FILENAME}" &) \
134 || (xchm "${MC_EXT_FILENAME}" &)
135 else
136 chm_http "${MC_EXT_FILENAME}" & elinks http://localhost:8080/index.html
137 kill -INT %1
142 esac
145 case "${action}" in
146 view)
147 do_view_action "${filetype}"
149 open)
150 ("${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" >/dev/null 2>&1) || \
151 do_open_action "${filetype}" "${pager}"
155 esac