|
|
@ -1,249 +1,50 @@ |
|
|
|
#!/bin/bash |
|
|
|
VERSION=0.3r2 |
|
|
|
#!/usr/bin/env bash |
|
|
|
VERSION=0.6r10 |
|
|
|
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" |
|
|
|
if [[ -e ./lib/resources.sh ]]; then . ./lib/resources.sh; else . /usr/lib/lch/resources.sh; fi |
|
|
|
if [[ -e ./lib/compressor.sh ]]; then . ./lib/compressor.sh; else . /usr/lib/lch/compressor.sh; fi |
|
|
|
if [[ -e ./lib/decompressor.sh ]]; then . ./lib/decompressor.sh; else . /usr/lib/lch/decompressor.sh; fi |
|
|
|
if [[ -e ./lib/installer.sh ]]; then . ./lib/installer.sh; else . /usr/lib/lch/installer.sh; fi |
|
|
|
|
|
|
|
if [ "$DEST" = "--version" ] || [ "$DEST" = "-v" ] |
|
|
|
then |
|
|
|
echo "Linux Compression Humanized $VERSION" |
|
|
|
exit 0 |
|
|
|
} |
|
|
|
else |
|
|
|
echo -e "\nlch $VERSION" |
|
|
|
echo -e "---------\n" |
|
|
|
|
|
|
|
function compressor() |
|
|
|
{ |
|
|
|
case $DEST in |
|
|
|
*.tar) |
|
|
|
tar -cvf $DEST $ORIG |
|
|
|
;; |
|
|
|
*.tar.gz | *.tgz) |
|
|
|
tar -czvf $DEST $ORIG |
|
|
|
"--help" | "-h") |
|
|
|
help |
|
|
|
;; |
|
|
|
*.tar.bz2 | *.tbz | *.tbz2 | *.tb2) |
|
|
|
tar -c $ORIG | bzip2 > $DEST |
|
|
|
"--check" | "-c") |
|
|
|
check |
|
|
|
;; |
|
|
|
*.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 |
|
|
|
"--install" | "-i") |
|
|
|
install $DEST $@ |
|
|
|
;; |
|
|
|
*) |
|
|
|
echo "Extension not found." |
|
|
|
echo -e "For more information run 'lch --help'\n" |
|
|
|
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 |
|
|
|
;; |
|
|
|
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 |