LINUX.ORG.RU
ФорумAdmin

Как подружить if else с командой sha256sum

 , ,


0

1

Есть скрипт, который скачивает файл, если его нету в папке, а если есть то выполняет команду... Как добавить проверку sha256sum??

function hammerhead-M4B30Z {
M4B30Z="hammerhead-m4b30z-factory-625c027b.zip"
  if [ -f "$M4B30Z" ]; then
    # Extract
    show_info 'Extraction Factory Images...'
    unzip hammerhead-m4b30z*.zip
    # Install
    show_info 'Install Factory Images...'
    cd hammerhead-m4b30z
    ./flash-all.sh
    # Timeout
    sleep 5
    # Back
    cd -
    # Cleanup and finish
    rm -rf hammerhead-m4b30z*
    # Done
    show_success 'Done.'
    whiptail --title "Finished" --msgbox "Installation complete." 8 78
    images
  else
    # Download
    show_info 'Download Factory Images...'
    wget https://dl.google.com/dl/android/aosp/hammerhead-m4b30z-factory-625c027b.zip
    # Extract
    show_info 'Extraction Factory Images...'
    unzip hammerhead-m4b30z*.zip
    # Install
    show_info 'Install Factory Images...'
    cd hammerhead-m4b30z
    ./flash-all.sh
    # Timeout
    sleep 5
    # Back
    cd -
    # Cleanup and finish
    rm -rf hammerhead-m4b30z*
    # Done
    show_success 'Done.'
    whiptail --title "Finished" --msgbox "Installation complete." 8 78
    images
  fi
}


Последнее исправление: spogrom1 (всего исправлений: 1)

А где должна быть проверка, в каком месте скрипта? Туда надо добавить что-то вида sha256sum -c путьКФайлуСЧексуммами || exit 1 (проверит суммы и если есть несовпадения завершит скрипт с кодом 1)

alozovskoy ★★★★★
()
function hammerhead-M4B30Z {
	local M4B30Z="hammerhead-m4b30z-factory-625c027b.zip"

	if [ ! -e "${M4B30Z}" ]; then
		show_info 'Download Factory Images...'
		wget https://dl.google.com/dl/android/aosp/hammerhead-m4b30z-factory-625c027b.zip || exit 1
	fi

	# Check sha256
	# sha256sum -c ... || exit 1
	
	# Extract
	show_info 'Extraction Factory Images...'
	unzip hammerhead-m4b30z*.zip

	# Install
	show_info 'Install Factory Images...'
	cd hammerhead-m4b30z
	./flash-all.sh

	# Timeout
	sleep 5

	# Back
	cd -

	# Cleanup and finish
	rm -rf hammerhead-m4b30z*

	# Done
	show_success 'Done.'
	whiptail --title "Finished" --msgbox "Installation complete." 8 78
	images
}
joy4eg ★★★★★
()

Так тебе нужна проверка (сравнение) или генерация? Если сравнивать, то чексумму какого файла с каким?

Crewger
()
Ответ на: комментарий от Crewger

Чексумму заданную в тексте

625c027b21afe6de7c3d0de66e3a42000269dd00c2ef9a5347007734537f3ea2
если в папке лежит файл, нужно убедится что он скачан из правильного источника и он исправен. Если его нету выполняется команда wget и так же проверяется.

spogrom1
() автор топика
Ответ на: комментарий от alozovskoy

а проверку не из файла можно сделать?

spogrom1
() автор топика
Ответ на: комментарий от Crewger

файла hammerhead-m4b30z-factory-625c027b.zip с этим текстом 625c027b21afe6de7c3d0de66e3a42000269dd00c2ef9a5347007734537f3ea2

spogrom1
() автор топика
Ответ на: комментарий от alozovskoy
touch SHA256SUM
echo "625c027b21afe6de7c3d0de66e3a42000269dd00c2ef9a5347007734537f3ea2 *hammerhead-m4b30z-factory-625c027b.zip" >> SHA256SUM
sha256sum -c SHA256SUM || exit 1

получается нужно сначала создать файл, записать нужную информацию и проверить?

spogrom1
() автор топика
Ответ на: комментарий от spogrom1

Можно через pipe подать на вход:

echo "625c027b21afe6de7c3d0de66e3a42000269dd00c2ef9a5347007734537f3ea2 hammerhead-m4b30z-factory-625c027b.zip" | sha256sum -c

// Только я не знаю может ли он в подстановку через звездочку, как в вашем примере, но вроде выше писали что известно полное имя файла.

// Когда в файл пишете touch не нужен, >>>, и tee и т.д. сами создадут файл если его нет).

alozovskoy ★★★★★
()
Последнее исправление: alozovskoy (всего исправлений: 2)
...

fatal() {
 xc=$1 ; shift ; echo $@ 1>&2 ; exit $xc
}

checksum() {
 test "$1" = 625c027b21afe6de7c3d0de66e3a42000269dd00c2ef9a5347007734537f3ea2
}

...

    M4B30ZU="https://dl.google.com/dl/android/aosp/hammerhead-m4b30z-factory-625c027b.zip"
    M4B30Z="${M4B30ZU##*/}"

...

    wget "$M4B30ZU"
fi

checksum $( sha256sum "$M4B30Z" ) || fatal 29 File checksum failed

...
berrywizard ★★★★★
()
Последнее исправление: berrywizard (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.