diff options
author | Jesús <heckyel@hyperbola.info> | 2021-02-10 13:52:52 -0500 |
---|---|---|
committer | Jesús <heckyel@hyperbola.info> | 2021-02-10 13:52:52 -0500 |
commit | 7e95c3b667a1b353f8275db886203f272bfcce34 (patch) | |
tree | aefe3b7db69ac78b83b79a70cf43401679812d20 /hyperterm/tools/compress.sh | |
download | hyperterm-7e95c3b667a1b353f8275db886203f272bfcce34.tar.lz hyperterm-7e95c3b667a1b353f8275db886203f272bfcce34.tar.xz hyperterm-7e95c3b667a1b353f8275db886203f272bfcce34.zip |
first commit
Diffstat (limited to 'hyperterm/tools/compress.sh')
-rw-r--r-- | hyperterm/tools/compress.sh | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/hyperterm/tools/compress.sh b/hyperterm/tools/compress.sh new file mode 100644 index 0000000..bfb92b0 --- /dev/null +++ b/hyperterm/tools/compress.sh @@ -0,0 +1,165 @@ +#!/bin/bash +# ex - archive extractor +# usage: ex <file> +function ex() { + if [ -f "$1" ] ; then + # shellcheck disable=SC2221,SC2222 + case "$1" in + *.tar.bz2) tar xjf "$1" ;; + *.tar.gz) tar xzf "$1" ;; + *.tar.xz) tar xf "$1" ;; + *.tar.lz) tar xvf "$1" ;; + *.lz) lzip -d "$1" ;; + *.7z) 7z x "$1" ;; + *.bz2) bunzip2 "$1" ;; + *.gz) gunzip "$1" ;; + *.rar) unar "$1" ;; + *.tar) tar xf "$1" ;; + *.tbz2) tar xjf "$1" ;; + *.tgz) tar xzf "$1" ;; + *.xz) unxz "$1" ;; + *.Z) uncompress "$1" ;; + *.zip) unzip "$1" ;; + *) msg_err "No se puede extraer '$1' vía ex()" \ + "'$1' cannot be extracted via ex()" + return 1 ;; + esac + else + msg_err "'$1' no es un archivo válido ¯\_(ツ)_/¯" \ + "'$1' is not a valid file ¯\_(ツ)_/¯" + return 1 + fi +} + +# Compress files or directories +function cex() { + + function option_compress_f() { + printf '%s\n' "1) 7z" + printf '%s\n' "2) bz2" + printf '%s\n' "3) gz" + printf '%s\n' "4) tar.bz2" + printf '%s\n' "5) tar.gz" + printf '%s\n' "6) tar.xz" + printf '%s\n' "7) tar.lz" + printf '%s\n' "8) tar" + printf '%s\n' "9) tbz2" + printf '%s\n' "10) tgz" + printf '%s\n' "11) Z" + printf '%s\n' "12) zip" + } + + function option_compress_d() { + printf '%s\n' "1) 7z" + printf '%s\n' "2) tar.bz2" + printf '%s\n' "3) tar.gz" + printf '%s\n' "4) tar.xz" + printf '%s\n' "5) tar.lz" + printf '%s\n' "6) tar" + printf '%s\n' "7) tbz2" + printf '%s\n' "8) tgz" + printf '%s\n' "9) zip" + } + + function log_compress() { + msg "Que tenga un buen día \o/" \ + "You have a nice day \o/" + } + + function invalid_option() { + msg "Archivo inválido u Opción no listada ¯\_(ツ)_/¯" \ + "Invalid file or Option not listed ¯\_(ツ)_/¯" + return 1 + } + + function compress_f() { + read -r A + case $A in + 1) 7z a "${1}.7z" "$1" ;; + 2) bzip2 -k "$1" ;; + 3) gzip --best --keep "$1" ;; + 4) tar -c "$1" | bzip2 > "${1}.tar.bz2" ;; + 5) tar -czvf "${1}.tar.gz" "$1" ;; + 6) tar cJvf "${1}.tar.xz" "$1" ;; + 7) tar -cvf "${1}.tar.lz" --lzip "$1" ;; + 8) tar -cvf "${1}.tar" "$1" ;; + 9) tar -c "$1" | bzip2 > "${1}.tbz2" ;; + 10) tar -czvf "${1}.tgz" "$1" ;; + 11) tar -czvf "${1}.z" "$1" ;; + 12) zip -r "${1}.zip" "$1" ;; + 0) log_compress "$@" ;; + *) invalid_option "$@" ;; + esac + } + + function compress_d() { + read -r A + case $A in + 1) 7z a "${1%/}.7z" "$1" ;; + 2) tar -c "$1" | bzip2 > "${1%/}.tar.bz2" ;; + 3) tar -czvf "${1%/}.tar.gz" "$1" ;; + 4) tar cJvf "${1%/}.tar.xz" "$1" ;; + 5) tar -cvf "${1%/}.tar.lz" --lzip "${1}" ;; + 6) tar -cvf "${1%/}.tar" "$1" ;; + 7) tar -c "$1" | bzip2 > "${1%/}.tbz2" ;; + 8) tar -czvf "${1%/}.tgz" "$1" ;; + 9) zip -r "${1%/}.zip" "$1" ;; + 0) log_compress "$@" ;; + *) invalid_option "$@" ;; + esac + } + + # Run + if [[ -f "$1" ]] ; then + case ${LANG/_*/} in + es) + # Print viewport user + printf '%s\n' "Elige una acción" + option_compress_f "$@" + printf '%s\n' "0) salir" + printf "Inserta la opción aquí:" + compress_f "$@" + ;; + + *) + # Print viewport user + printf '%s\n' "Choose option" + option_compress_f "$@" + printf '%s\n' "0) exit" + printf "Insert the option here:" + compress_f "$@" + ;; + esac + elif [[ -d "$1" ]] ; then + case ${LANG/_*/} in + es) + # Print viewport user + printf '%s\n' "Elige una acción" + option_compress_d "$@" + printf '%s\n' "0) salir" + printf "Inserta la opción aquí:" + compress_d "$@" + ;; + + *) + # Print viewport user + printf '%s\n' "Choose option" + option_compress_d "$@" + printf '%s\n' "0) exit" + printf "Insert the option here:" + compress_d "$@" + ;; + esac + else + msg_err "'$1' no es un archivo o directorio válido ¯\_(ツ)_/¯" \ + "'$1' is not a valid file or directory ¯\_(ツ)_/¯" + return 1 + fi +} + +unset -f compress_f +unset -f compress_d +unset -f log_compress +unset -f option_compress_f +unset -f option_compress_d +unset -f invalid_option |