Установка sha1sum на git-bash (MinGW)
Я использую git-bash
на Windows 7 много. Я полагаю, это обертка MinGW. У него есть md5sum, но нет sha1sum. Я хотел бы установить sha1sum
, но я не могу понять, как.
Когда я пытаюсь mingw-get
говорит "команда не найдена"
Когда я пытался скачать mingw-get
из SourceForge, я нашел только установщик для всей программы MinGW, но не для mingw-get
,
Как мне установить либо получить sha1sum
или получать mingw-get
?
2 ответа
Решение
mingw-get
доступен на
http://sourceforge.net/projects/mingw/files/Installer/mingw-get
После того, как вы установили этот запуск
mingw-get install msys-coreutils
Я решил это для себя, добавив функцию оболочки, которая использует включенный openssl, чтобы заменить часть sha1sum, которую я использовал чаще всего.
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]\+\)$/\2'
local binfmt="$commonfmt "'*\1/;' txtfmt="$commonfmt "'\1/;'
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