SCM - Compressão em Massa

Publicado por Jefferson Rocha (última atualização em 28/06/2018)

[ Hits: 718 ]

Homepage: https://slackjeff.com.br

Download scm




Simples compressão em massa (bash, ksh, zsh).

Modo de uso e outras informações:

https://notabug.org/jeffersonrocha/scm/raw/master/README.md

  



Esconder código-fonte

#!/usr/bin/env bash
#=============HEADER================================================|
#AUTOR
#  Jefferson Rocha <lrcjefferson@gmail.com> 
#
#PROGRAM
#  SCM - Simple Compreension Mass
#
#DESC
#
#TESTED SHELLS:
# Bash: version 4.3.48
# Ksh:  version 93u+
# Zsh:  version 5.2
#
#CHANGELOG
#===================================================================|

#=========VARS============================|
#==CONFIGURATIONS
# Create MD5 file?
MD5="0" # 0 OFF | 1 ON
readonly NAME="SCM"
readonly VERSION="0.1"
#==Colors
bold=$(tput bold)
fg_error=$(tput setaf 1)
fg_ok=$(tput setaf 2)
fg_end=$(tput sgr0)
#=========================================|

#=========TESTES==========================|
deps=("gzip" "tar" "md5sum") # program dependencies
for x in "${deps[@]}"; {
    if ! type -p "${x}" 1> /dev/null 2>&1; then
        # MD5 enabled and installed on system?
        if [ "${x}" = "${deps[2]}" ] && [ "$MD5" = "1" ] ; then
            printf "${bold}${fg_error}U NEED INSTALL '${x}' FOR CONTINUE;${fg_end}\n"
            exit 1
        else
            continue
        fi
        printf "${bold}${fg_error}U NEED INSTALL '${x}' FOR CONTINUE;${fg_end}\n"
    fi
}
#=========================================|

#========FUNCTIONS========================|
USAGE(){
cat <<EOH
   USAGE HERE.
EOH

exit 0
}

_COMPRESS(){
# Local variables:
typeset INPUT_TYPE
typeset ARCHIVE

    until [ -z "$1" ]; do # Main loop
        [ -d "$1" ] && INPUT_TYPE="DIRECTORY" || INPUT_TYPE="ARCHIVE"  # Input type.
            [ ! -w "$1" ] && { printf "NO PERMISSION!"; continue ;}    # Have permission write?
            ARCHIVE="${1/%\//}-${INPUT_TYPE}.gz"
            if tar cf - "$1" | gzip -9 > "${ARCHIVE}"; then
               [ "$MD5" = "1" ] && md5sum "${ARCHIVE}" > "${ARCHIVE}.md5" # ON? Generate .md5 file
                printf "${bold}${fg_ok}'${1}'......\t[OK]${fg_end}\n"
            else
                printf "${bold}${fg_error}'${1}......\t[ERROR]'${fg_end}\n"
            fi
            shift # Downnn!
    done
}
#=========================================|

# no params? go function.
[ "$#" = "0" ] && USAGE

#################
# MAINLAND here #
#################
if [ "$1" = "compress" ]; then
    shift # Palmeiras
    if [ -z "$1" ]; then
        USAGE
    else
        _COMPRESS "$@"
    fi
elif [ "$1" = "usage" ] || [ "$1" = "help" ]; then
    USAGE
fi

Scripts recomendados

Backup em HD Externa com Rsync

Script de backup para MySQL - JonMyBackup

Informações sobre o computador

Brincando com a libnotify

akill


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts