Cleanup checksum path

This commit is contained in:
2023-01-14 12:23:43 -05:00
parent 7e8cbb01fd
commit 423e910a04

View File

@@ -41,7 +41,7 @@ printHelp() {
init() {
debug "${FUNCNAME[0]}"
declare -g ID RPM_MGR SCRIPTDIR
declare -g ID RPM_MGR SCRIPTDIR DL_TOOL
debug || echo "To enable debugging output, use --debug or -d"
@@ -117,6 +117,15 @@ init() {
pkg_install(){ sudo pacman -S --noconfirm --needed "$@"; }
;;
esac
if hash axel &>/dev/null; then
DL_TOOL="axel"
elif hash curl &>/dev/null; then
DL_TOOL="curl"
else
echo "Downloading the Image Builder requires axel or curl!"
return 1
fi
}
@@ -337,67 +346,36 @@ installDependencies() {
getImageBuilder() {
debug "${FUNCNAME[0]}"
declare dl_tool
if [[ -f "$IB_ARCHIVE" ]]; then
echo "Image Builder $IB_ARCHIVE exists"
if askOk "Redownload Image Builder archive?"; then
if askOK "$IB_ARCHIVE exists. Re-download?"; then
rm -f "$IB_ARCHIVE"
else
return 0
fi
fi
if hash axel &>/dev/null; then
dl_tool="axel"
elif hash curl &>/dev/null; then
dl_tool="curl"
else
echo "Downloading the Image Builder requires axel or curl!"
return 1
fi
echo "Downloading Image Builder archive using $dl_tool"
debug "$dl_tool -o $IB_ARCHIVE $IB_URL"
if ! "$dl_tool" -o "$IB_ARCHIVE" "$IB_URL"; then
echo "Could not download Image Builder archive"
return 1
fi
if [[ ! -f "$IB_ARCHIVE" ]]; then
echo "Archive missing"
return 1
fi
echo "Downloading Image Builder archive using $DL_TOOL"
debug "$DL_TOOL -o $IB_ARCHIVE $IB_URL"
"$DL_TOOL" -o "$IB_ARCHIVE" "$IB_URL"
}
verifyImage() {
getImageBuilderChecksum() {
debug "${FUNCNAME[0]}"
declare checksum
if hash sha256sum &>/dev/null; then
debug "Verifying Image Builder checksums"
if [[ -f $SHA256_FILE ]]; then
if askOk "$SHA256_FILE exists. Re-download?"; then
if ! curl -so "$SHA256_FILE" "$SHA256_URL"; then
debug "Failed to download checksum"
fi
fi
elif ! curl -so "$SHA256_FILE" "$SHA256_URL"; then
debug "Failed to download checksum"
if [[ -f $IB_SHA256_FILE ]]; then
if askOk "$IB_SHA256_FILE exists. Re-download?"; then
rm -f "$IB_SHA256_FILE"
else
return 0
fi
checksum=$(grep "${IB_ARCHIVE##*/}" "$SHA256_FILE" | cut -f1 -d' ')
debug "$IB_ARCHIVE $checksum"
echo -n "$checksum $IB_ARCHIVE" | sha256sum --check --status
fi
"$DL_TOOL" -o "$IB_SHA256_FILE" "$IB_SHA256_URL"
}
extractImage() {
extractImageBuilder() {
debug "${FUNCNAME[0]}"
echo "Extracting Image Builder archive"
@@ -459,7 +437,7 @@ sshBackup() {
}
makeImage() {
makeImages() {
debug "${FUNCNAME[0]}"
# Reuse the existing output
@@ -473,17 +451,25 @@ makeImage() {
[[ -d "$BUILDDIR" ]] || mkdir -p "$BUILDDIR"
if ! make image \
make image \
BIN_DIR="$THIS_BINDIR" \
PROFILE="${P_ARR[profile]}" \
PACKAGES="${P_ARR[packages]}" \
FILES="${FILESDIR}" \
--directory="$BUILDDIR" \
--jobs="$(nproc)" \
> "$BUILDDIR/make.log"; then
echo "Make image failed!"
exit 1
fi
> "$BUILDDIR/make.log"
}
verifyImages() {
debug "${FUNCNAME[0]}"
declare outfile
for outfile in "$THIS_BINDIR"/*.img.gz; do
verify "$outfile" "$IB_OUT_SHA256_FILE" || return 1
done
}
@@ -648,6 +634,19 @@ loadProfiles() {
}
verify() {
debug "${FUNCNAME[0]}"
declare file_to_check="$1"
declare sumfile="$2"
declare checksum
hash sha256sum &>/dev/null || return 1
[[ -f $sumfile && -f $file_to_check ]] || return 1
checksum=$(grep "${file_to_check##*/}" "$sumfile" | cut -f1 -d' ')
echo -n "$checksum $file_to_check" | sha256sum --check --status
}
main() {
debug "${FUNCNAME[0]}"
@@ -710,8 +709,9 @@ main() {
declare -g IB_URL="$url_prefix/$url_filename"
declare -g IB_ARCHIVE="$SRCDIR/$url_filename"
declare -g SHA256_URL="$url_prefix/sha256sums"
declare -g SHA256_FILE="$BUILDDIR/sha256sums"
declare -g IB_SHA256_URL="$url_prefix/sha256sums"
declare -g IB_SHA256_FILE="$BUILDDIR/sha256sums"
declare -g IB_OUT_SHA256_FILE="$THIS_BINDIR/sha256sums"
declare -g SEED_URL="$url_prefix/config.buildinfo"
declare -g SEED_FILE="$GITSRCDIR/.config"
@@ -742,10 +742,11 @@ main() {
IB_ARCHIVE=$IB_ARCHIVE
SEED_URL=$SEED_URL
SEED_FILE=$SEED_FILE
SHA256_URL=$SHA256_URL
SHA256_FILE=$SHA256_FILE
FACTORIMGGZ: $FACTORYIMGGZ
FACTORIMGGZFNAME: $FACTORYIMGGZFNAME
IB_SHA256_URL=$IB_SHA256_URL
IB_SHA256_FILE=$IB_SHA256_FILE
IB_OUT_SHA256_FILE=$IB_OUT_SHA256_FILE
FACTORYIMGGZ: $FACTORYIMGGZ
FACTORYIMGGZFNAME: $FACTORYIMGGZFNAME
SYSUPGRADEIMGGZ: $SYSUPGRADEIMGGZ
SYSUPGRADEIMGGZFNAME: $SYSUPGRADEIMGGZFNAME
EOF
@@ -755,13 +756,21 @@ main() {
(( FROM_SOURCE )) && fromSource
getImageBuilder || return $?
verifyImage || getImageBuilder || verifyImage || return $?
extractImage || return $?
# Acquire and verify Image Builder
getImageBuilder &&
getImageBuilderChecksum &&
verify "$IB_ARCHIVE" "$IB_SHA256_FILE" ||
return $?
extractImageBuilder || return $?
addRepos
#copyFiles
[[ -v SSH_BACKUP_PATH ]] && sshBackup
if makeImage; then
if makeImages && verifyImages; then
[[ -v SSH_UPGRADE_PATH ]] && sshUpgrade
[[ -v FLASH_DEV ]] && flashImage
fi