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