mirror of
https://gitlab.com/JKANetwork/jka-toolkit.git
synced 2026-03-24 03:12:04 +01:00
251 lines
5.8 KiB
Bash
Executable File
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
|