diff options
author | Leah Rowe <leah@libreboot.org> | 2023-09-29 23:40:57 +0100 |
---|---|---|
committer | Leah Rowe <leah@libreboot.org> | 2023-09-29 23:40:57 +0100 |
commit | 9f5a5450afda39973d9da4fa3bed97c365a5acd2 (patch) | |
tree | 9e0e38d80a657cd246f1545a7f83c5efea5eedaf /include/blobutil.sh | |
parent | 416704fb4e284770798a914c93434e3d91e6b900 (diff) |
blobs/download: move helpers to include/blobutil
mkdirs() should be in include/blobutil.sh, as should
extract_archive(), because that is primarily where
they are used.
script/update/blobs/download calls these functions
aswell, but it sources include/blobutil.sh so it's OK.
Signed-off-by: Leah Rowe <leah@libreboot.org>
Diffstat (limited to 'include/blobutil.sh')
-rwxr-xr-x | include/blobutil.sh | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/include/blobutil.sh b/include/blobutil.sh index a14f92c1..873d368d 100755 --- a/include/blobutil.sh +++ b/include/blobutil.sh @@ -96,3 +96,21 @@ vendor_checksum() return 1 fi } + +mkdirs() +{ + [ -f "${1}" ] && \ + printf "mkdirs ${1} ${2}: already downloaded\n" 1>&2 && return 1 + mkdir -p "${1%/*}" || err "mkdirs ${1} ${2}: !mkdir ${1%/*}" + rm -Rf "${appdir}" || err "mkdirs ${1} ${2}: can't remove ${appdir}" + mkdir -p "${appdir}/" || err "mkdirs ${1} ${2}: !mkdir ${appdir}" + extract_archive "${_dl}" "${appdir}" || \ + [ "${2}" = "extract_e6400vga" ] || err "mkdirs ${1} ${2}: !extract" +} + +extract_archive() +{ + innoextract "${1}" -d "${2}" || python "${pfs_extract}" "${1}" -e || \ + 7z x "${1}" -o"${2}" || unar "${1}" -o "${2}" || \ + unzip "${1}" -d "${2}" || return 1 +} |