From 025944436183ca53ae0a79426e2a37dac6adce54 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Wed, 22 Mar 2023 02:18:54 +0100 Subject: [PATCH] build.sh: Add --with-lbwww-path to use a local lbwww git repository The ideal situation would be to move integrate all the files of this repository inside lbwww to be able to easily test local changes. However that doesn't work as untitled expect lbwww to be in untitled/www/lbwww and there is no way to configure that. Using symlinks doesn't work either as untitled doesn't trust symlinks as there are TOCTU attacks with it if the distribution doesn't fs.protected_hardlinks and fs.protected_symlinks in sysctl. Patching untitled is also not the best option here as it could potentially add extra maintenance in the long run. So we add the configuration inside lbwww-build instead. Signed-off-by: Denis 'GNUtoo' Carikli Acked-by: Adrien 'neox' Bourmault --- build.sh | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 8b5fbb4..0c34029 100755 --- a/build.sh +++ b/build.sh @@ -17,6 +17,9 @@ # For compatibility with sysexits.h (see man 3 sysexits.h for more details) EX_USAGE=64 +lbwww_uri="https://git.sr.ht/~libreboot/lbwww" +lbwww_path="" + help() { echo "Usage: $0 [options]" @@ -24,11 +27,17 @@ help() echo "Available options:" echo -e "\t-h, --help" echo -e "\t\tDisplay this help and exit." + echo -e "\t--with-lbwww-path PATH" + echo -e "\t\tUse a local lbwww directory from PATH\n" \ + "\t\tinstead of downloading the latest version from\n" \ + "\t\t${lbwww_uri}" } if [ $# -eq 1 ] && [ "$1" = "-h" -o "$1" == "--help" ] ; then help exit 0 +elif [ $# -eq 2 ] && [ "$1" = "--with-lbwww-path" ] ; then + lbwww_path="$(realpath $2)" elif [ $# -ne 0 ] ; then help exit ${EX_USAGE} @@ -45,11 +54,17 @@ fi cd untitled && mkdir -p www && cd www -if [ ! -d lbwww ] ; then - git clone https://git.sr.ht/~libreboot/lbwww -else +if [ -z "${lbwww_path}" ] && [ ! -d lbwww ] ; then + git clone "${lbwww_uri}" +elif [ ! -d lbwww ] ; then + cp -a "${lbwww_path}" lbwww +elif [ -z "${lbwww_path}" ] ; then + git -C lbwww remote set-url origin "${lbwww_uri}" git -C lbwww clean -dfx git -C lbwww pull --rebase +else + rm -rf lbwww + cp -a "${lbwww_path}" lbwww fi if [ ! -d lbwww-img ] ; then