mirror of
https://codeberg.org/libreboot/lbmk.git
synced 2026-03-28 15:09:04 +02:00
osboot is now part of libreboot, and will soon shut down. libreboot now conforms to osboot policy.
89 lines
1.7 KiB
Bash
Executable File
89 lines
1.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# SPDX-FileCopyrightText: 2022 Caleb La Grange <thonkpeasant@protonmail.com>
|
|
# SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
Print_help(){
|
|
cat <<- EOF
|
|
Usage: ./download gitmodule [name]
|
|
|
|
Options:
|
|
name: The name of the module as specified in resources/git/revisions file
|
|
EOF
|
|
}
|
|
|
|
Fail(){
|
|
printf "${@}\n"
|
|
Print_help
|
|
exit 1
|
|
}
|
|
|
|
Check_vars(){
|
|
if [ -z "${revision+x}" ]; then
|
|
Fail 'Error: revision not set'
|
|
fi
|
|
if [ -z "${location+x}" ]; then
|
|
Fail 'Error: location not set'
|
|
fi
|
|
if [ -z "${url+x}" ]; then
|
|
Fail 'Error: url not set'
|
|
fi
|
|
}
|
|
|
|
Patch(){
|
|
for patchfile in ${PWD}/${patchdir}/*.patch ; do
|
|
( cd ${tmp_dir}
|
|
git am ${patchfile} || return 1
|
|
)
|
|
done
|
|
}
|
|
|
|
Run(){
|
|
git clone ${url} ${tmp_dir} || git clone ${bkup_url} ${tmp_dir} || Fail "ERROR: couldn't download ${name}\n Check Network connection"
|
|
( cd ${tmp_dir} && git reset --hard ${revision} )
|
|
patchdir="resources/${name}/patches"
|
|
|
|
if [ -d "${patchdir}" ]; then
|
|
Patch || Fail "ERROR: Faild to patch ${name}"
|
|
fi
|
|
|
|
mv ${tmp_dir} ${location} || Fail "ERROR: couldn't copy temp to destination\n ${tmp_dir} > ${location} check permissions"
|
|
}
|
|
|
|
if [ -z "${1+x}" ]; then
|
|
Fail 'Error: name not set'
|
|
else
|
|
name=${1}
|
|
fi
|
|
|
|
while read -r line ; do
|
|
set ${line} >/dev/null 2>&1
|
|
case ${line} in
|
|
rev:*)
|
|
revision=${2}
|
|
;;
|
|
loc:*)
|
|
location=${2}
|
|
;;
|
|
url:*)
|
|
url=${2}
|
|
;;
|
|
bkup_url:*)
|
|
bkup_url=${2}
|
|
;;
|
|
esac
|
|
done <<< $(eval "awk ' /\{.*${name}.*}{/ {flag=1;next} /\}/{flag=0} flag { print }' resources/git/revisions")
|
|
|
|
Check_vars
|
|
tmp_dir=$(mktemp -dt "${name}_XXXXX")
|
|
|
|
# clean out old version just in case
|
|
if [ -d "${location}" ]; then
|
|
rm -rf ${location}
|
|
fi
|
|
|
|
Run
|
|
|
|
# clean in case of failure
|
|
rm -rf ${tmp_dir} >/dev/null 2>&1
|