Clarify usage of use_internal_edit variable
[midnight-commander.git] / misc / ext.d / archive.sh
blob2264b12438e132087c59276d1bacb09664b351d4
1 #!/bin/sh
3 # $1 - action
4 # $2 - type of file
5 # $3 - pager
7 action=$1
8 filetype=$2
9 pager=$3
11 [ -n "${MC_XDG_OPEN}" ] || MC_XDG_OPEN="xdg-open"
13 do_view_action() {
14 filetype=$1
16 case "${filetype}" in
17 gz)
18 gzip -dc "${MC_EXT_FILENAME}" 2>/dev/null
20 bz2)
21 bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null
23 bzip)
24 bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null
26 lzma)
27 lzma -dc "${MC_EXT_FILENAME}" 2>/dev/null
29 xz)
30 xz -dc "${MC_EXT_FILENAME}" 2>/dev/null
32 tar)
33 tar tvvf - < "${MC_EXT_FILENAME}"
35 tar.gz|tar.qpr)
36 gzip -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
37 tar tvvf -
39 tar.bzip)
40 bzip -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
41 tar tvvf -
43 tar.bzip2)
44 bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
45 tar tvvf -
47 tar.lzma)
48 lzma -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
49 tar tvvf -
51 tar.xz)
52 xz -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
53 tar tvvf -
55 tar.F)
56 freeze -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
57 tar tvvf -
60 lha)
61 lha l "${MC_EXT_FILENAME}"
63 arj)
64 arj l "${MC_EXT_FILENAME}" 2>/dev/null || \
65 unarj l "${MC_EXT_FILENAME}"
67 cab)
68 cabextract -l "${MC_EXT_FILENAME}"
70 ha)
71 ha lf "${MC_EXT_FILENAME}"
73 rar)
74 rar v -c- "${MC_EXT_FILENAME}" 2>/dev/null || \
75 unrar v -c- "${MC_EXT_FILENAME}"
77 alz)
78 unalz -l "${MC_EXT_FILENAME}"
80 cpio.z|cpio.gz)
81 gzip -dc "${MC_EXT_FILENAME}" | \
82 cpio -itv 2>/dev/null
84 cpio.xz)
85 xz -dc "${MC_EXT_FILENAME}" | \
86 cpio -itv 2>/dev/null
88 cpio)
89 cpio -itv < "${MC_EXT_FILENAME}" 2>/dev/null
91 7z)
92 7za l "${MC_EXT_FILENAME}" 2>/dev/null ||
93 7z l "${MC_EXT_FILENAME}"
96 ace)
97 unace l "${MC_EXT_FILENAME}"
99 arc)
100 arc l "${MC_EXT_FILENAME}"
102 zip)
103 unzip -v "${MC_EXT_FILENAME}"
105 zoo)
106 zoo l "${MC_EXT_FILENAME}"
110 esac
113 do_open_action() {
114 filetype=$1
115 pager=$2
117 case "${filetype}" in
118 bzip2)
119 bzip2 -dc "${MC_EXT_FILENAME}" | ${pager}
121 bzip)
122 bzip -dc "${MC_EXT_FILENAME}" | ${pager}
125 gz -dc "${MC_EXT_FILENAME}" | ${pager}
127 lzma)
128 lzma -dc "${MC_EXT_FILENAME}" | ${pager}
131 xz -dc "${MC_EXT_FILENAME}" | ${pager}
133 par2)
134 par2 r "${MC_EXT_FILENAME}"
138 esac
141 case "${action}" in
142 view)
143 do_view_action "${filetype}"
145 open)
146 "${MC_XDG_OPEN}" "${MC_EXT_FILENAME}" 2>/dev/null || \
147 do_open_action "${filetype}" "${pager}"
151 esac