Linux Compression Humanized
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

197 lines
3.7 KiB

#!/bin/bash
VERSION=0.2r2
DEST=$1
shift 1
ORIG=$@
function decompressor()
{
case $DEST in
*.tar)
tar -xvf $DEST
;;
*.tar.gz | *.tgz)
tar -xzvf $DEST
;;
*.tar.bz2 | *.tbz | *.tbz2 | *.tb2)
tar xjf $DEST
;;
*.tar.xz | *.txz)
tar -xf $DEST
;;
*.bz2)
bzip2 -d $DEST
;;
*.gz)
gzip -d $DEST
;;
*.zip)
unzip $DEST
;;
*.7z)
7za e $DEST
;;
*)
echo "Extension not found."
echo "For more information run 'lch --help'"
echo ""
;;
esac
echo ""
echo "Done"
exit 0
}
function compressor()
{
case $DEST in
*.tar)
tar -cvf $DEST $ORIG
;;
*.tar.gz | *.tgz)
tar -czvf $DEST $ORIG
;;
*.tar.bz2 | *.tbz | *.tbz2 | *.tb2)
tar -c $ORIG | bzip2 > $DEST
;;
*.tar.xz | *.txz)
tar -cJf $DEST $ORIG
;;
*.bz2)
bzip2 -c $ORIG > $DEST
;;
*.gz)
gzip -c $ORIG > $DEST
;;
*.zip)
zip -r $DEST $ORIG
;;
*.7z)
7za a $DEST $ORIG
;;
*)
echo "Extension not found."
echo "For more information run 'lch --help'"
echo ""
;;
esac
echo ""
echo "Done"
exit 0
}
function help()
{
echo "Help:"
echo "-----"
echo ""
echo "lch [-h] [-v] [-c] [-i] [FILE [FILE]]"
echo ""
echo "Examples:"
echo "$ lch -h -This help"
echo "$ lch -v -print version"
echo "$ lch -c -check compresion systems"
echo "$ lch -i -install the compressors dependences."
echo "$ lch file.zip /home/file -Compress"
echo "$ lch file.zip -Decompress"
echo ""
echo "Supported extensions:"
echo " tar, tar.gz, tar.bz2, tar.xz, bz2, tgz, gz, zip, 7z"
echo ""
echo "Run 'man lch' for more info."
echo ""
}
function check()
{
local a=false
echo "Verification of compression systems:"
echo ""
echo -e "Systems\t\t\tStatus"
echo "----------------------------------"
for i in "tar" "bzip2" "gzip" "zip" "7za"
do
if ! [ -x "$(command -v $i)" ]
then
echo -e "$i\t\t\t\e[91mNot Installed\e[0m"
$a = true
else
echo -e "$i\t\t\t\e[32mInstaled\e[0m"
fi
done
if $a
then
echo ""
echo "In order to use all the extensions install the packages: tar, bzip2, gzip, zip, 7za"
fi
echo ""
exit 0
}
function install()
{
echo "Install dependences"
echo ""
if [ -x "$(command -v apt)" ]
then
echo "Detect APT system"
echo ""
apt install tar bzip2 gzip zip p7zip-full
else
echo "No detect installer"
echo ""
fi
exit 0
}
if [ "$DEST" = "--help" ] || [ "$DEST" = "-h" ]
then
help
exit 0
fi
if [ "$DEST" = "--check" ] || [ "$DEST" = "-c" ]
then
check
exit 0
fi
if [ "$DEST" = "--install" ] || [ "$DEST" = "-i" ]
then
install
exit 0
fi
if [ "$DEST" = "--version" ] || [ "$DEST" = "-v" ]
then
echo "Linux Compression Humanized $VERSION"
exit 0
else
echo ""
echo "lch $VERSION"
echo "---------"
echo ""
fi
if [ -z "$DEST" ]
then
help
exit 1
else
if [ -n "$ORIG" ]
then
echo "Compressor:"
echo "-----------"
echo ""
compressor $DEST $ORIG
else
echo "Decompressor:"
echo "-------------"
echo ""
decompressor $DEST
fi
fi