1
0
mirror of https://gitlab.com/JKANetwork/jka-toolkit.git synced 2026-03-24 03:12:04 +01:00
Files
jka-toolkit/jka-toolkit/jkazip
2016-06-07 13:41:45 +02:00

251 lines
5.8 KiB
Bash
Executable File

#!/bin/bash
#JKA - ZIP
#A script for de/compress files and folders in many formats
#Author: JKA Network - contacto@jkanetwork.com
#Function decompress(); decompress the file whith the format especified
# gettext initialization
export TEXTDOMAIN='jkazip'
export TEXTDOMAINDIR='/usr/share/locale'
function decompress() {
msg_de=""$(gettext "%s has been decompressed")" "$2""
if [ $files -eq 0 ];then
format=$(ls $2 | cut -f2 -d".")
format2=$(ls $2 | cut -f3 -d".")
else
format=$(echo $1 | cut -f1 -d".")
format2=$(echo $1 | cut -f2 -d".")
fi
if [ $format = "tar" ];then
if [ -z $format2 ];then
tar xvf $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format2 = "gz" ];then
tar xvzf $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format2 = "bz2" ];then
tar xvjf $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format2 = "xz" ];then
tar xvJf $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
fi
elif [ $format = "tbz2" ];then
tar xvjf $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format = "tgz" ];then
tar xvjf $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format = "txz" ];then
tar xvJf $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format = "7z" -o $format = "7zip" ];then
7z e $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format = "zip" ];then
unzip $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format = "gz" -o $format = "gzip" ];then
gzip -dk $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format = "bz2" -o $format = "bzip" ];then
bzip2 -dk $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
elif [ $format = "rar" ];then
unrar x $2
if [ $? -eq 0 ];then
printf -- $msg_de
echo
fi
else
printf -- "$(gettext "Format %s unknown")" "$format"
echo
fi
}
version="1.0.0"
if [ -z $1 ];then
echo "$(gettext "No option specified, use jkazip -h")"
elif [ $1 = "-h" ];then
echo "$(gettext " synopsis: jkazip <options> <file or directory>")"
echo ""
echo "$(gettext " -d, decompress file")"
echo "$(gettext " -f <format>, specified format whe decompress, necessary only when the name have more than one point before the file extension")"
echo "$(gettext " -c <format>, compress file")"
echo "$(gettext " -h, show help box and exit")"
echo "$(gettext " -v, show version")"
echo ""
echo "$(gettext " The order must be \"jkazip -d [-f format] <file or directory>\" or \"jkazip -c <format> <file or directory\"")"
echo ""
echo "$(gettext " Examples")"
echo "$(gettext " jkazip -d -f \"tar.gz\" file.txt.tar.gz")"
echo "$(gettext " jkazip -d file.7z")"
echo "$(gettext " jkazip -c \"tar.xz\" directory")"
echo ""
echo "$(gettext " Supported formats: tar, gzip, bzip2, xzip, 7z, zip and rar")"
echo "$(gettext " Only one file or directory (some formats don't support directories), for more options use the each program individualy")"
echo ""
elif [ $1 = "-v" ];then
printf -- "$(gettext "jkazip by JKA Network; version %s")" "$version"
echo
elif [ $1 = "-d" ];then
if [ -z $2 ];then
echo "$(gettext "No file or directory specified")"
exit
elif [ $2 = "-f" ];then
files=1
elif [ -d $2 ];then
files=0
printf -- "$(gettext "Directory %s will be decompressed")" "$2"
echo
elif [ -f $2 ];then
files=0
echo "$(gettext "File $ will be decompressed")"
else
printf -- "$(gettext "%s no such file or directory")" "$2"
echo
exit
fi
if [ $files -eq 0 ];then
decompress 0 $2
elif [ $files -eq 1 ];then
if [ -d $4 ];then
printf -- "$(gettext "Directory %s will be decompressed")" "$4"
echo
elif [ -f $4 ];then
printf -- "$(gettext "File %s will be decompressed")" "$4"
echo
else
printf -- "$(gettext "%s no sush a file or directory")" "$4"
echo
exit
fi
decompress $3 $4
fi
elif [ $1 = "-c" ];then
if [ -z $3 ];then
echo "$(gettext "No file or directory specified")"
exit
elif [ -d $3 ];then
printf -- "$(gettext "The directory %s will be compressed")" "$3"
echo
elif [ -f $3 ];then
printf -- "$(gettext "The file %s will be compressed")" "$3"
echo
else
printf -- "$(gettext "%s no such file or directory")" "$3"
echo
exit
fi
msg_co=""$(gettext "%s has been compressed")" "$3""
if [ -z $2 ];then
echo "$(gettext "No format specified")"
elif [ $2 = "tar" ] 2> /dev/null ;then
tar cvf $3.tar $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "tar.gz" ] 2> /dev/null ;then
tar cvzf $3.tar.gz $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "tar.bz2" ] 2> /dev/null ;then
tar cvjf $3.tar.bz2 $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "tar.xz" ] 2> /dev/null ;then
tar cvJf $3.tar.xz $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "tbz2" ] 2> /dev/null ;then
tar cvjf $3.tbz2 $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "tgz" ] 2> /dev/null ;then
tar cvjf $3.tgz $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "txz" ] 2> /dev/null ;then
tar cvJf $3.txz $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "7z" -o $2 = "7zip" ] 2> /dev/null ;then
7z a $3.7z $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "zip" ] 2> /dev/null ;then
zip $3.zip $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "gz" -o $2 = "gzip" ] 2> /dev/null ;then
gzip -9k $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "bz2" -o $2 = "bzip2" ] 2> /dev/null ;then
bzip2 -k $3
if [ $? -eq 0 ];then
printf -- $msg_co
echo
fi
elif [ $2 = "rar" ] 2> /dev/null ;then
echo "$(gettext "Format rar are not supported for compression"
else
printf -- "$(gettext "Format %s unknown")" "$2"
echo
fi
else
echo "$(gettext "Unknown option")"
fi