diff options
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 +} |