From 16e677ed945813679f44d43d759fa435b2dd2883 Mon Sep 17 00:00:00 2001 From: bryan Date: Wed, 1 Feb 2023 12:17:22 -0500 Subject: [PATCH] More global scope cleanup --- openwrtbuilder | 103 +++++++++++++++++++------------------------------ 1 file changed, 40 insertions(+), 63 deletions(-) diff --git a/openwrtbuilder b/openwrtbuilder index ba67ccf..a0a004c 100755 --- a/openwrtbuilder +++ b/openwrtbuilder @@ -389,18 +389,6 @@ getImageBuilderChecksum() { } -extractImageBuilder() { - debug "${FUNCNAME[0]}" - - echo "Extracting Image Builder archive" - debug "tar -xf $IB_ARCHIVE -C $BUILDDIR --strip-components 1" - if ! tar -xf "$IB_ARCHIVE" -C "$BUILDDIR" --strip-components 1; then - echo "Extraction failed" - return 1 - fi -} - - addRepos() { debug "${FUNCNAME[0]}" @@ -559,25 +547,27 @@ fromSource() { declare pkg kopt opt commit gitworktreedir seed_file declare -a make_opts config_opts + declare src_dir="$BUILDROOT/src/openwrt" + echo "Building from source is under development" # Update source code - if [[ ! -d "$GITSRCDIR" ]]; then - mkdir -p "$GITSRCDIR" - git clone "$src_url" "$GITSRCDIR" + if [[ ! -d "$src_dir" ]]; then + mkdir -p "$src_dir" + git clone "$src_url" "$src_dir" fi - git -C "$GITSRCDIR" pull + git -C "$src_dir" pull debug "Current commit:" - (( DEBUG )) && git -C "$GITSRCDIR" log -1 - (( DEBUG )) && git -C "$GITSRCDIR" describe + (( DEBUG )) && git -C "$src_dir" log -1 + (( DEBUG )) && git -C "$src_dir" describe - commit=$(git -C "$GITSRCDIR" rev-parse HEAD) + commit=$(git -C "$src_dir" rev-parse HEAD) debug "Current commit hash: $commit" if [[ $RELEASE == "snapshot" ]]; then gitworktreedir="$BUILDROOT/src/$profile/$RELEASE" - git -C "$GITSRCDIR" \ + git -C "$src_dir" \ worktree add \ --force \ --detach \ @@ -585,7 +575,7 @@ fromSource() { "master" else gitworktreedir="$BUILDROOT/src/$profile/$RELEASE" - git -C "$GITSRCDIR" \ + git -C "$src_dir" \ worktree add \ --force \ --detach \ @@ -682,42 +672,24 @@ fromSource() { return 0 } +# Generic helpers debug() { (( DEBUG )) && echo "Debug: $*"; } - - askOk() { local _response read -r -p "$* [y/N]" _response _response=${_response,,} [[ "$_response" =~ ^(yes|y)$ ]] } - - -resetAll() { +extract() { debug "${FUNCNAME[0]}" - askOk "Remove $BUILDROOT/src and $BUILDROOT/bin?" || exit $? - debug "rm -rf $BUILDROOT/src $BUILDROOT/bin" - rm -rf "${BUILDROOT:?}/src" "${BUILDROOT:?}/bin" + declare archive="$1" + declare out_dir="$2" + debug "tar -xf $archive -C $out_dir --strip-components 1" + if ! tar -xf "$archive" -C "$out_dir" --strip-components 1; then + echo "Extraction failed" + return 1 + fi } - - -resetProfile() { - debug "${FUNCNAME[0]}" - askOk "Remove $BUILDDIR and $BINDIR?" || exit $? - debug "rm -rf $BUILDDIR $BINDIR" - rm -rf "$BUILDDIR" "$BINDIR" -} - - -loadProfiles() { - debug "${FUNCNAME[0]}" - declare -g PFILE - PFILE="$SCRIPTDIR/profiles" - # shellcheck source=./profiles - ! source "$PFILE" && echo "profiles file missing!" && return 1 -} - - verify() { debug "${FUNCNAME[0]}" declare file_to_check="$1" @@ -729,6 +701,12 @@ verify() { checksum=$(grep "${file_to_check##*/}" "$sumfile" | cut -f1 -d' ') echo -n "$checksum $file_to_check" | sha256sum --check --status } +load() { + debug "${FUNCNAME[0]}" + declare source_file="$1" + # shellcheck disable=SC1090 + [[ -f $source_file ]] && source "$source_file" +} main() { @@ -736,7 +714,8 @@ main() { init - loadProfiles + # shellcheck source=./profiles + load "$SCRIPTDIR/profiles" readInput "$@" @@ -744,21 +723,17 @@ main() { declare -g BUILDROOT="${BUILDROOT:=$SCRIPTDIR}" [[ $BUILDROOT == "/" ]] && echo "Invalid --buildroot" && exit 1 declare -g FILESDIR="${FILESDIR:=$BUILDROOT/src/files}" - declare -g BINDIR="$BUILDROOT/bin" # output - declare -g GITSRCDIR="$BUILDROOT/src/openwrt" for dir in "$BUILDROOT/src" "$BUILDROOT/bin"; do [[ -d "$dir" ]] || mkdir -p "$dir" done # Allow --reset without a profile - if [[ ${#PROFILES} -lt 1 ]]; then - if (( RESET )); then - resetAll - exit - else - echo "No profile supplied" && return 1 - fi + if (( RESET )) && [[ ${#PROFILES} -lt 1 ]]; then + askOk "Remove $BUILDROOT/src and $BUILDROOT/bin?" || exit $? + debug "rm -rf $BUILDROOT/src $BUILDROOT/bin" + rm -rf "${BUILDROOT:?}/src" "${BUILDROOT:?}/bin" + exit $? fi installDependencies @@ -810,7 +785,6 @@ main() { ALIAS (\$profile, \$P_ARR)=$profile, $P_ARR BUILDROOT=$BUILDROOT BUILDDIR=$BUILDDIR - GITSRCDIR=$GITSRCDIR BINDIR=$BINDIR TARGET=${P_ARR[target]} PROFILE=${P_ARR[profile]} @@ -820,7 +794,11 @@ main() { EOF fi - (( RESET )) && resetProfile + if (( RESET )); then + askOk "Remove $BUILDDIR and $BINDIR?" || exit $? + debug "rm -rf $BUILDDIR $BINDIR" + rm -rf "$BUILDDIR" "$BINDIR" + fi [[ -d $BUILDDIR ]] || mkdir -p "$BUILDDIR" @@ -829,13 +807,12 @@ main() { else getImageBuilder && getImageBuilderChecksum && - verify "$IB_ARCHIVE" "$IB_SHA256_FILE" || return $? - extractImageBuilder || return $? + verify "$IB_ARCHIVE" "$IB_SHA256_FILE" && + extract "$IB_ARCHIVE" "$BUILDDIR" || return $? addRepos makeImages && verifyImages #copyFiles - fi [[ -v SSH_BACKUP_PATH ]] &&