init.sh: only set xbmk version on parent instance

On child instances, we need only read.

Apply the principle of least privilege.

Signed-off-by: Leah Rowe <leah@libreboot.org>
master
Leah Rowe 2025-05-18 12:07:10 +01:00
parent 416b1f66be
commit 2a6a4d765d
1 changed files with 8 additions and 5 deletions

View File

@ -30,7 +30,7 @@ xbmk_init()
id -u 1>/dev/null 2>/dev/null || err "suid check failed (id -u)" id -u 1>/dev/null 2>/dev/null || err "suid check failed (id -u)"
[ "$(id -u)" != "0" ] || err "this command as root is not permitted" [ "$(id -u)" != "0" ] || err "this command as root is not permitted"
for init_cmd in set_version set_env lock git_init \ for init_cmd in get_version set_env lock set_version git_init \
mkdirs set_pyver child_exec; do mkdirs set_pyver child_exec; do
xbmk_$init_cmd "$@" || break xbmk_$init_cmd "$@" || break
done done
@ -50,7 +50,7 @@ xbmkpkg()
printf "You need AUR packages: %s\n" "$aur_notice" 1>&2; : printf "You need AUR packages: %s\n" "$aur_notice" 1>&2; :
} }
xbmk_set_version() xbmk_get_version()
{ {
[ ! -f ".version" ] || read -r version < ".version" || :; : [ ! -f ".version" ] || read -r version < ".version" || :; :
[ ! -f ".versiondate" ] || read -r versiondate < ".versiondate" || :; : [ ! -f ".versiondate" ] || read -r versiondate < ".versiondate" || :; :
@ -68,9 +68,6 @@ xbmk_set_version()
--pretty='%ct' HEAD)" || versiondate="$versiondate_" --pretty='%ct' HEAD)" || versiondate="$versiondate_"
chkvars version versiondate chkvars version versiondate
printf "%s\n" "$version" > ".version" || err "can't save version"
printf "%s\n" "$versiondate" > ".versiondate" || err "can't save date"
relname="$projectname-$version" relname="$projectname-$version"
} }
@ -131,6 +128,12 @@ xbmk_lock()
touch "$xbmklock" || err "cannot create '$xbmklock'"; : touch "$xbmklock" || err "cannot create '$xbmklock'"; :
} }
xbmk_set_version()
{
printf "%s\n" "$version" > ".version" || err "can't save version"
printf "%s\n" "$versiondate" > ".versiondate" || err "can't save date"
}
xbmk_git_init() xbmk_git_init()
{ {
for gitarg in "--global user.name" "--global user.email"; do for gitarg in "--global user.name" "--global user.email"; do