Instalando o sha1sum no git-bash (MinGW)

5

Eu tenho usado muito o git-bash no Windows 7. Eu entendo que é um invólucro do MinGW. Ele tem md5sum mas não sha1sum . Gostaria de instalar o sha1sum , mas não consigo descobrir como.

Quando eu tento mingw-get , ele diz "comando não encontrado"

Quando tentei fazer o download de mingw-get do SourceForge , só encontrei um instalador para todo o programa MinGW, mas não para mingw-get .

Como faço para instalar obtendo sha1sum ou recebendo mingw-get ?

    
por mcgyver5 28.11.2011 / 20:01

2 respostas

6

mingw-get está disponível em

sourceforge.net/projects/mingw/files/Installer/mingw-get

Depois de ter essa corrida instalada

mingw-get install msys-coreutils

    
por 26.01.2012 / 01:47
1

Eu resolvi isso por mim adicionando uma função de shell que usa o openssl incluído para substituir a parte do sha1sum que eu usei com mais freqüência.

function openssl_sha1sum() {
    local i nf=0 binary= text=true
    local -a files

    # parse for -b/-t mode output arguments
    for (( i=1; i <= $#; i++ )); do
        case "${!i}" in
            (-t|--text)
                text=true
                binary=
                ;;
            (-b|--binary)
                binary=true
                text=
                ;;
            (-|-[cw]|--help|--version|--status|--check|--warn)
                ;;
            (*)
                let 'nf++'
                files[$nf]="${!i}"
                ;;
        esac
    done

    # execute the appropriate command and reformat the output
    if [ $nf -eq 0 ]; then
        local binfmt='s/$/ *-/;' txtfmt='s/$/  -/;'
        if [ -n "$binary" ]; then
            fmt=$binfmt
        else
            fmt=$txtfmt
        fi
        openssl dgst -sha1 -hex | sed -e "$fmt"
    else
        local commonfmt='s/^[A-Z0-9]\+(\(.*\))= \([0-9a-fA-F]\+\)$/'
        local binfmt="$commonfmt "'*/;' txtfmt="$commonfmt  "'/;'
        if [ -n "$binary" ]; then
            fmt=$binfmt
        else
            fmt=$txtfmt
        fi
        openssl dgst -sha1 -hex "${files[@]}" | sed -e "$fmt"
    fi
}

if ! type -p sha1sum &>/dev/null; then
    function sha1sum() { openssl_sha1sum "$@"; }
fi
    
por 04.05.2013 / 02:07

Tags