47 lines
1.4 KiB
Bash
47 lines
1.4 KiB
Bash
#!/bin/bash
|
|
|
|
#This program is free software: you can redistribute it and/or modify
|
|
#it under the terms of the GNU General Public License as published by
|
|
#the Free Software Foundation, either version 3 of the License, or
|
|
#(at your option) any later version.
|
|
|
|
#This program is distributed in the hope that it will be useful,
|
|
#but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
#GNU General Public License for more details.
|
|
|
|
#You should have received a copy of the GNU General Public License
|
|
#along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
#Copyright 2021 rexy712
|
|
|
|
extr_register_module 'zstd'
|
|
extr_register_extensions 'zstd' '\.zstd$'
|
|
|
|
function do_zstd(){
|
|
local flags=()
|
|
if [ "$verbosity" == 0 ];then
|
|
flags+=("--quiet")
|
|
elif [ "$verbosity" == 2 ];then
|
|
flags+=("-v")
|
|
fi
|
|
if [ -n "$overwrite" ];then
|
|
flags+=("-f")
|
|
fi
|
|
local fileout=
|
|
if [ -n "$outloc" ];then
|
|
fileout="${outloc}/$(basename "${file:0:-5}")"
|
|
else
|
|
fileout="${PWD}/$(basename "${file:0:-5}")"
|
|
fi
|
|
if [ -e "${fileout}" ] && [ -z "$overwrite" ];then
|
|
echo "Could not decompress $file; output file exists" >&2
|
|
return 1
|
|
fi
|
|
if [ ! -r "${file}" ] || [ ! -w "$(dirname "${fileout}")" ];then
|
|
echo "${file} decompress failed; permission denied"
|
|
return 1
|
|
fi
|
|
unzstd -dk "${flags[@]}" "${passthrough_args[@]}" "$file" --stdout > "${fileout}"
|
|
}
|