(edit_do_undo): cleanup of labeled statement usage.
[midnight-commander.git] / misc / ext.d / archive.sh
blob5423a954a3c5beb1e6a837b81918358985997196
1 #!/bin/sh
3 # $1 - action
4 # $2 - type of file
5 # $3 - pager
7 action=$1
8 filetype=$2
9 pager=$3
11 do_view_action() {
12 filetype=$1
14 case "${filetype}" in
15 gz)
16 gzip -dc "${MC_EXT_FILENAME}" 2>/dev/null
18 bz2)
19 bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null
21 bzip)
22 bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null
24 lzma)
25 lzma -dc "${MC_EXT_FILENAME}" 2>/dev/null
27 xz)
28 xz -dc "${MC_EXT_FILENAME}" 2>/dev/null
30 tar)
31 tar tvvf - < "${MC_EXT_FILENAME}"
33 tar.gz|tar.qpr)
34 gzip -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
35 tar tvvf -
37 tar.bzip)
38 bzip -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
39 tar tvvf -
41 tar.bzip2)
42 bzip2 -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
43 tar tvvf -
45 tar.lzma)
46 lzma -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
47 tar tvvf -
49 tar.xz)
50 xz -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
51 tar tvvf -
53 tar.F)
54 freeze -dc "${MC_EXT_FILENAME}" 2>/dev/null | \
55 tar tvvf -
58 lha)
59 lha l "${MC_EXT_FILENAME}"
61 arj)
62 unarj l "${MC_EXT_FILENAME}"
64 cab)
65 cabextract -l "${MC_EXT_FILENAME}"
67 ha)
68 ha lf "${MC_EXT_FILENAME}"
70 rar)
71 rar v -c- "${MC_EXT_FILENAME}" 2>/dev/null || \
72 unrar v -c- "${MC_EXT_FILENAME}"
74 alz)
75 unalz -l "${MC_EXT_FILENAME}"
77 cpio.z|cpio.gz)
78 gzip -dc "${MC_EXT_FILENAME}" | \
79 cpio -itv 2>/dev/null
81 cpio.xz)
82 xz -dc "${MC_EXT_FILENAME}" | \
83 cpio -itv 2>/dev/null
85 cpio)
86 cpio -itv < "${MC_EXT_FILENAME}" 2>/dev/null
88 7z)
89 7za l "${MC_EXT_FILENAME}" 2>/dev/null
91 ace)
92 unace l "${MC_EXT_FILENAME}"
94 arc)
95 arc l "${MC_EXT_FILENAME}"
97 zip)
98 unzip -v "${MC_EXT_FILENAME}"
100 zoo)
101 zoo l "${MC_EXT_FILENAME}"
105 esac
108 do_open_action() {
109 filetype=$1
110 pager=$2
112 case "${filetype}" in
113 bzip2)
114 bzip2 -dc "${MC_EXT_FILENAME}" | ${pager}
116 bzip)
117 bzip -dc "${MC_EXT_FILENAME}" | ${pager}
120 gz -dc "${MC_EXT_FILENAME}" | ${pager}
122 lzma)
123 lzma -dc "${MC_EXT_FILENAME}" | ${pager}
126 xz -dc "${MC_EXT_FILENAME}" | ${pager}
130 esac
133 case "${action}" in
134 view)
135 do_view_action "${filetype}"
137 open)
138 xdg-open "${MC_EXT_FILENAME}" 2>/dev/null || \
139 do_open_action "${filetype}" "${pager}"
143 esac