summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeah Rowe <leah@libreboot.org>2025-05-12 16:30:05 +0100
committerLeah Rowe <leah@libreboot.org>2025-05-12 16:30:05 +0100
commitc9696e233389f1f896dc70076cfc03f14f8a940a (patch)
tree6d5c6add00e7cb641ef476522144e9c2794373cb
parent23913bb8d2aa80452c381086b7513587badcd1e4 (diff)
lib.sh: move xbmkget() to git.sh
in cbmk, it's only used from there. in lbmk, it's also used from vendor.sh. however, i plan to further expand git.sh at some point, tidying it up so that git cloning is also done from xbmkget, with dlop=git and git.sh would then be renamed to get.sh Signed-off-by: Leah Rowe <leah@libreboot.org>
-rw-r--r--include/git.sh50
-rw-r--r--include/lib.sh50
-rwxr-xr-xmk2
3 files changed, 51 insertions, 51 deletions
diff --git a/include/git.sh b/include/git.sh
index bbc5140e..b65bd196 100644
--- a/include/git.sh
+++ b/include/git.sh
@@ -87,6 +87,56 @@ fetch_submodule()
"$mdir/${1##*/}/patches"
}
+# can grab from the internet, or copy locally.
+# if copying locally, it can only copy a file.
+xbmkget()
+{
+ _dlop="curl" && [ $# -gt 4 ] && _dlop="$5"
+ x_ mkdir -p "${3%/*}" "$XBMK_CACHE/file"
+ for url in "$1" "$2"; do
+ [ -n "$url" ] && try_file "$url" "$_dlop" "$@" && return 0
+ done && err "$1 $2 $3 $4: not downloaded"; :
+}
+
+try_file()
+{
+ cached="$XBMK_CACHE/file/$6"
+ dl_fail="n" # 1 url, 2 url backup, 3 destination, 4 checksum
+ bad_checksum "$6" "$cached" 2>/dev/null && dl_fail="y"
+ [ "$dl_fail" = "n" ] && e "$5" f && return 0
+
+ x_ rm -f "$cached"
+ [ "$2" = "curl" ] || [ "$2" = "copy" ] || \
+ err "$3 $4 $5 $6: Unsupported dlop type: '$2'"
+
+ try_$2 "$cached" "$@" || return 1
+
+ bad_checksum "$6" "$cached" && return 1
+ [ "$cached" = "$5" ] || x_ cp "$cached" "$5"; :
+}
+
+try_curl()
+{
+ _ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
+ curl --location --retry 3 -A "$_ua" "$2" -o "$1" || \
+ wget --tries 3 -U "$_ua" "$2" -O "$1" || return 1; :
+}
+
+try_copy()
+{
+ [ -L "$2" ] && printf "dl %s %s %s %s: '%s' is a symlink\n" \
+ "$4" "$5" "$6" "$7" "$2" 1>&2 && return 1
+ [ ! -f "$2" ] && printf "dl %s %s %s %s: '%s' not a file\n" \
+ "$4" "$5" "$6" "$7" "$2" 1>&2 && return 1
+ cp "$2" "$1" || return 1; :
+}
+
+bad_checksum()
+{
+ [ "$(sha512sum "$2" | awk '{print $1}')" != "$1" ] || return 1
+ printf "Bad checksum for file: %s\n" "$2" 1>&2; rm -f "$2" || :; :
+}
+
tmpclone()
{
[ -d "$3" ] && return 0
diff --git a/include/lib.sh b/include/lib.sh
index d5607c61..ba7d5d8c 100644
--- a/include/lib.sh
+++ b/include/lib.sh
@@ -35,56 +35,6 @@ rmgit()
fx_ "x_ rm -Rf" x_ find "$1" -name ".gitmodules"
}
-# can grab from the internet, or copy locally.
-# if copying locally, it can only copy a file.
-xbmkget()
-{
- _dlop="curl" && [ $# -gt 4 ] && _dlop="$5"
- x_ mkdir -p "${3%/*}" "$XBMK_CACHE/file"
- for url in "$1" "$2"; do
- [ -n "$url" ] && try_file "$url" "$_dlop" "$@" && return 0
- done && err "$1 $2 $3 $4: not downloaded"; :
-}
-
-try_file()
-{
- cached="$XBMK_CACHE/file/$6"
- dl_fail="n" # 1 url, 2 url backup, 3 destination, 4 checksum
- bad_checksum "$6" "$cached" 2>/dev/null && dl_fail="y"
- [ "$dl_fail" = "n" ] && e "$5" f && return 0
-
- x_ rm -f "$cached"
- [ "$2" = "curl" ] || [ "$2" = "copy" ] || \
- err "$3 $4 $5 $6: Unsupported dlop type: '$2'"
-
- try_$2 "$cached" "$@" || return 1
-
- bad_checksum "$6" "$cached" && return 1
- [ "$cached" = "$5" ] || x_ cp "$cached" "$5"; :
-}
-
-try_curl()
-{
- _ua="Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0"
- curl --location --retry 3 -A "$_ua" "$2" -o "$1" || \
- wget --tries 3 -U "$_ua" "$2" -O "$1" || return 1; :
-}
-
-try_copy()
-{
- [ -L "$2" ] && printf "dl %s %s %s %s: '%s' is a symlink\n" \
- "$4" "$5" "$6" "$7" "$2" 1>&2 && return 1
- [ ! -f "$2" ] && printf "dl %s %s %s %s: '%s' not a file\n" \
- "$4" "$5" "$6" "$7" "$2" 1>&2 && return 1
- cp "$2" "$1" || return 1; :
-}
-
-bad_checksum()
-{
- [ "$(sha512sum "$2" | awk '{print $1}')" != "$1" ] || return 1
- printf "Bad checksum for file: %s\n" "$2" 1>&2; rm -f "$2" || :; :
-}
-
e()
{
es_t="e" && [ $# -gt 1 ] && es_t="$2"
diff --git a/mk b/mk
index b56b7444..f22d3b09 100755
--- a/mk
+++ b/mk
@@ -17,6 +17,7 @@ fi
. "include/mrc.sh"
. "include/rom.sh"
. "include/release.sh"
+. "include/git.sh"
main()
{
@@ -34,7 +35,6 @@ main()
main "$@" || exit 0
-. "include/git.sh"
. "include/tree.sh"
trees "$@" || exit 0