#!/bin/bash
|
|
VERSION=0.3r2
|
|
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
|
|
;;
|
|
*.rar)
|
|
unrar x $DEST
|
|
;;
|
|
*)
|
|
echo "Extension not found."
|
|
echo -e "For more information run 'lch --help'\n"
|
|
;;
|
|
esac
|
|
|
|
echo -e "\nDone"
|
|
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
|
|
;;
|
|
*.rar)
|
|
rar a $DEST $ORIG
|
|
;;
|
|
*)
|
|
echo "Extension not found."
|
|
echo -e "For more information run 'lch --help'\n"
|
|
;;
|
|
esac
|
|
|
|
echo -e "\nDone"
|
|
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 dependencies."
|
|
echo "$ lch file.zip - Decompress"
|
|
echo "$ lch file.zip /home/file - Compress"
|
|
echo "$ lch files.zip /flie1 /flie2 - Compress multiple"
|
|
echo ""
|
|
echo "Supported extensions:"
|
|
echo " rar, 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 -e "Verification of compression systems:\n"
|
|
echo -e "Systems\t\t\tStatus"
|
|
echo "----------------------------------"
|
|
for i in "rar" "unrar" "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[32mInstalled\e[0m"
|
|
fi
|
|
done
|
|
|
|
if $a
|
|
then
|
|
echo -e "\nIn order to use all the extensions install the packages: tar, bzip2, gzip, zip, 7za, rar, unrar"
|
|
fi
|
|
echo ""
|
|
exit 0
|
|
}
|
|
|
|
function rarInstall(){
|
|
|
|
if [[ $(uname -m) -eq "x86_64" ]]
|
|
then
|
|
RAR_URL="https://www.rarlab.com/rar/rarlinux-x64-5.9.1.tar.gz"
|
|
RAR_FILE="rarlinux-x64-5.9.1.tar.gz"
|
|
else
|
|
RAR_URL="https://www.rarlab.com/rar/rarlinux-5.9.1.tar.gz"
|
|
RAR_FILE="rarlinux-5.9.1.tar.gz"
|
|
fi
|
|
wget $RAR_URL
|
|
tar -zxvf $RAR_FILE
|
|
cd rar
|
|
cp -v rar unrar /usr/local/bin/
|
|
cd ..
|
|
rm -r rar $RAR_FILE
|
|
echo "rar/unrar installed."
|
|
}
|
|
|
|
function install()
|
|
{
|
|
echo -e "Install dependencies\n"
|
|
|
|
if [ "$UID" != "0" ]; then
|
|
echo " Only root can execute this script, sorry."
|
|
echo " Try 'sudo $0 $DEST'"
|
|
exit 0
|
|
fi
|
|
|
|
if [ -e "$(command -v rar)" ]
|
|
then
|
|
echo "rar installed."
|
|
else
|
|
rarInstall
|
|
fi
|
|
|
|
if [ -x "$(command -v apt)" ]
|
|
then
|
|
echo -e "APT system detected\n"
|
|
apt install -y tar bzip2 gzip zip p7zip-full 1> /dev/null
|
|
elif [ -n "$(grep "centos" /etc/*-release)" ]
|
|
then
|
|
echo -e "CentOS system detected\n"
|
|
yum install -y -q epel-release 1> /dev/null
|
|
rpm -U --quiet http://mirrors.kernel.org/fedora-epel/6/i386/epel-release-6-8.noarch.rpm 1> /dev/null
|
|
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 1> /dev/null
|
|
yum repolist 1> /dev/null
|
|
yum install -y -q tar bzip2 gzip zip p7zip 1> /dev/null
|
|
elif [ -x "$(command -v dnf)" ]
|
|
then
|
|
echo -e "DNF system detected\n"
|
|
dnf install -y -q tar bzip2 gzip zip p7zip 1> /dev/null
|
|
elif [ -x "$(command -v yum)" ]
|
|
then
|
|
echo -e "Yum system detected\n"
|
|
yum install -y -q tar bzip2 gzip zip p7zip 1> /dev/null
|
|
elif [ -x "$(command -v pacman)" ]
|
|
then
|
|
echo -e "Pacman system detected\n"
|
|
pacman -Sqy --noconfirm tar bzip2 gzip zip p7zip 1> /dev/null
|
|
elif [ -x "$(command -v zypper)" ]
|
|
then
|
|
echo -e "Zypper system detected\n"
|
|
zypper install -y tar bzip2 gzip zip p7zip-full 1> /dev/null
|
|
else
|
|
echo -e "System installer not detected\n"
|
|
fi
|
|
|
|
echo -e "\nDependencies installation finished\n"
|
|
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 -e "\nlch $VERSION"
|
|
echo -e "---------\n"
|
|
fi
|
|
|
|
if [ -z "$DEST" ]
|
|
then
|
|
help
|
|
exit 1
|
|
else
|
|
if [ -n "$ORIG" ]
|
|
then
|
|
echo "Compressor:"
|
|
echo -e "-----------\n"
|
|
compressor $DEST $ORIG
|
|
else
|
|
echo "Decompressor:"
|
|
echo -e "-------------\n"
|
|
decompressor $DEST
|
|
fi
|
|
fi
|