mirror of
https://github.com/MidnightCommander/mc
synced 2025-01-23 03:32:07 +03:00
134 lines
2.8 KiB
Bash
134 lines
2.8 KiB
Bash
|
#!/bin/sh
|
||
|
|
||
|
# $1 - action
|
||
|
# $2 - type of archive
|
||
|
# $3 - pager
|
||
|
|
||
|
action=$1
|
||
|
filetype=$2
|
||
|
pager=$3
|
||
|
|
||
|
get_unpacker() {
|
||
|
filetype=$1
|
||
|
case "${filetype}" in
|
||
|
man.gz)
|
||
|
unpacker="gzip -dc"
|
||
|
;;
|
||
|
man.bz)
|
||
|
unpacker="bzip -dc"
|
||
|
;;
|
||
|
man.bz2)
|
||
|
unpacker="bzip2 -dc"
|
||
|
;;
|
||
|
man.lzma)
|
||
|
unpacker="lzma -dc"
|
||
|
;;
|
||
|
man.xz)
|
||
|
unpacker="xz -dc"
|
||
|
;;
|
||
|
esac
|
||
|
echo ${unpacker}
|
||
|
}
|
||
|
|
||
|
|
||
|
do_view_action() {
|
||
|
filetype=$1
|
||
|
pager=$2
|
||
|
|
||
|
unpacker=`get_unpacker ${filetype}`
|
||
|
|
||
|
case "${filetype}" in
|
||
|
man)
|
||
|
case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
|
||
|
*/log/*|*/logs/*)
|
||
|
cat "${MC_EXT_FILENAME}"
|
||
|
;;
|
||
|
*)
|
||
|
{ zsoelim "${MC_EXT_FILENAME}" 2>/dev/null || cat "${MC_EXT_FILENAME}"; } | nroff @MAN_FLAGS@ @MANDOC@
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
pod)
|
||
|
pod2man "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
|
||
|
;;
|
||
|
nroff.me)
|
||
|
nroff @MAN_FLAGS@ -me "${MC_EXT_FILENAME}"
|
||
|
;;
|
||
|
nroff.ms)
|
||
|
nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}"
|
||
|
;;
|
||
|
man.gz|man.bz|man.bz2|man.lzma|man.xz)
|
||
|
case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
|
||
|
*/log/*|*/logs/*)
|
||
|
${unpacker} %f
|
||
|
;;
|
||
|
*)
|
||
|
${unpacker} ${filename} | nroff @MAN_FLAGS@ @MANDOC@
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
*)
|
||
|
;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
do_open_action() {
|
||
|
filetype=$1
|
||
|
pager=$2
|
||
|
|
||
|
unpacker=`get_unpacker ${filetype}`
|
||
|
|
||
|
case "${filetype}" in
|
||
|
info)
|
||
|
info -f "${MC_EXT_FILENAME}"
|
||
|
;;
|
||
|
man)
|
||
|
case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
|
||
|
*/log/*|*/logs/*)
|
||
|
cat "${MC_EXT_FILENAME}"
|
||
|
;;
|
||
|
*)
|
||
|
{ zsoelim "${MC_EXT_FILENAME}" 2>/dev/null || cat "${MC_EXT_FILENAME}"; } | \
|
||
|
nroff @MAN_FLAGS@ @MANDOC@
|
||
|
;;
|
||
|
esac | ${pager}
|
||
|
;;
|
||
|
pod)
|
||
|
pod2man "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@ | ${pager}
|
||
|
;;
|
||
|
nroff.me)
|
||
|
nroff @MAN_FLAGS@ -me "${MC_EXT_FILENAME}" | ${pager}
|
||
|
;;
|
||
|
nroff.ms)
|
||
|
nroff @MAN_FLAGS@ -ms "${MC_EXT_FILENAME}" | ${pager}
|
||
|
;;
|
||
|
man.gz|man.bz|man.bz2|man.lzma|man.xz)
|
||
|
case "${MC_EXT_CURRENTDIR}"/"${MC_EXT_FILENAME}" in
|
||
|
*/log/*|*/logs/*)
|
||
|
${unpacker} "${MC_EXT_FILENAME}"
|
||
|
;;
|
||
|
*)
|
||
|
${unpacker} "${MC_EXT_FILENAME}" | nroff @MAN_FLAGS@ @MANDOC@
|
||
|
;;
|
||
|
esac | ${pager}
|
||
|
;;
|
||
|
chm)
|
||
|
which kchmviewer > /dev/null 2>&1 && (kchmviewer "${MC_EXT_FILENAME}" &) || (xchm "${MC_EXT_FILENAME}" &)
|
||
|
;;
|
||
|
*)
|
||
|
;;
|
||
|
esac
|
||
|
}
|
||
|
|
||
|
case "${action}" in
|
||
|
view)
|
||
|
do_view_action "${filetype}" "${pager}"
|
||
|
;;
|
||
|
open)
|
||
|
xdg-open "${MC_EXT_FILENAME}" 2>/dev/null || \
|
||
|
do_open_action "${filetype}" "${pager}"
|
||
|
;;
|
||
|
*)
|
||
|
;;
|
||
|
esac
|