SCM - Compressão em Massa

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

[ Hits: 1.331 ]

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

Desklets DoItYourself como monitor do sistema

Baixando arquivos do Megaupload

Script para relatório de download de arquivos via Squid

Quota em disco

Script shell para automatizar downloads do MegaUpload


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts