Script for creating compressed archives with zstd and xz
This commit is contained in:
parent
a9ff703f37
commit
8a348a482a
72
arch-config/scripts/in_path/sc-compress
Executable file
72
arch-config/scripts/in_path/sc-compress
Executable file
@ -0,0 +1,72 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if [ $# -eq 2 ]; then
|
||||||
|
alg=$1
|
||||||
|
target=$2
|
||||||
|
elif [ $# -eq 3 ]; then
|
||||||
|
alg=$1
|
||||||
|
str=$2
|
||||||
|
target=$3
|
||||||
|
elif [ $1 == "-h" || $1 == "--help" ]; then
|
||||||
|
echo "sc-compress ALGORITHM [STRENGTH] TARGET"
|
||||||
|
echo "Algorithms: xz, zstd"
|
||||||
|
echo "Strength: low, medium, high"
|
||||||
|
else
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
command="tar -cv -I\""
|
||||||
|
|
||||||
|
# add algorithm
|
||||||
|
if [ $alg == "xz" ]; then
|
||||||
|
command+="pxz"
|
||||||
|
elif [ $alg == "zstd" ]; then
|
||||||
|
command+="zstd -T0"
|
||||||
|
else
|
||||||
|
echo "Unsupported option"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check if something with the strength is set
|
||||||
|
if [ ! -z "${str+x}" ]; then
|
||||||
|
if [ $str == "low" ]; then
|
||||||
|
if [ $alg == "xz" ]; then
|
||||||
|
command+=" -1"
|
||||||
|
elif [ $alg == "zstd" ]; then
|
||||||
|
command+=" -1"
|
||||||
|
fi
|
||||||
|
elif [ $str == "medium" ]; then
|
||||||
|
if [ $alg == "xz" ]; then
|
||||||
|
command+=" -5"
|
||||||
|
elif [ $alg == "zstd" ]; then
|
||||||
|
command+=" -10"
|
||||||
|
fi
|
||||||
|
elif [ $str == "high" ]; then
|
||||||
|
if [ $alg == "xz" ]; then
|
||||||
|
command+=" -9"
|
||||||
|
elif [ $alg == "zstd" ]; then
|
||||||
|
command+=" -19"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Unsupported option"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
command+="\""
|
||||||
|
|
||||||
|
# add archive file
|
||||||
|
if [ $alg == "xz" ]; then
|
||||||
|
command+=" -f ${target}.tar.xz $target"
|
||||||
|
elif [ $alg == "zstd" ]; then
|
||||||
|
command+=" -f ${target}.tar.zst $target"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# output final command
|
||||||
|
echo $command
|
||||||
|
|
||||||
|
# execute command
|
||||||
|
eval $command
|
||||||
|
|
||||||
|
exit 0
|
Loading…
Reference in New Issue
Block a user