#!/bin/sh

# make sure the file/folder exists and .temp doesn't exist
if [ ! -f $@ ]; then
    echo "file '$@' not found"
    exit 1
fi

echo "setting up"
mkdir .temp$$
cp -r $@ .temp$$
cd .temp$$
F="file"

echo "tar"
tar -cf ${F}.tar $@
F="${F}.tar"

echo "gz"
gzip -9 ${F}
F="${F}.gz"

echo "xz"
xz -ze9T$(nproc) ${F}
F="${F}.xz"

echo "lzma"
lzma -ze9T$(nproc) ${F}
F="${F}.lzma"

echo "bz2"
bzip2 -z9 ${F}
F="${F}.bz2"

echo "lz"
lzip -9 ${F}
F="${F}.lz"

echo "cpio"
echo ${F} | cpio --quiet -oF ${F}.cpio
F="${F}.cpio"

echo "zst"
zstd -T$(nproc) --ultra -q -22 ${F}
F="${F}.zst"

echo "lz4"
lz4 -q -z -12 --rm ${F}
F="${F}.lz4"

# not doing rar because there's no free software to create them.
# .zip wasn't in the original so i'm doing that instead
echo "zip"
zip -9 -q ${F}.zip ${F}
F="${F}.zip"

echo "7z"
7z a -t7z -mx9 ${F}.7z ${F} > /dev/null # 7zip has no quiet option >:(
F="${F}.7z"

echo "bz3"
bzip3 -z --rm -j$(nproc) ${F}
F="${F}.bz3"

echo "br"
brotli -j -q 11 ${F}
F="${F}.br"

echo "hex"
xxd -ps ${F} > ${F}.hex
F="${F}.hex"

echo "swcr"
cat ${F} | sweecrypt encrypt > ${F}.swcr
F="${F}.swcr"

echo "b64"
base64 ${F} > ${F}.b64
F="${F}.b64"

echo "b32"
base32 ${F} > ${F}.b32
F="${F}.b32"

echo "lzo"
lzop -9 -q ${F}
F="${F}.lzo"

echo "squashfs"
mksquashfs ${F} ${F}.squashfs -quiet -no-progress
F="${F}.squashfs"

echo "cleaning up"
mv ${F} ..
cd ..
rm -r .temp$$

echo "done"
