Files
lbmk/mk
T
Leah Rowe 189b61018f xbmk: allow running from outside of work dir
i need only now implement a check for sys dirs
e.g. /etc/lbmk.cfg and check if it defines
e.g. other location for config/ and include/

then mk is a generic dispatcher and i can one
day make mk possible to install. for example, if
you have a bsd ports system and you want to
install lbmk

i could make it check user dirs too, overriding
defaults. for example /usr/local/etc/lbmk, but
then i might have ~/.config/lbmk

you no longer need to be in the xbmk directory
to run xbmk. it'll cd to itself, with this patch

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-09-10 13:52:16 +01:00

79 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env sh
# SPDX-License-Identifier: GPL-3.0-or-later
# Copyright (c) 2020-2025 Leah Rowe <leah@libreboot.org>
# Copyright (c) 2022 Caleb La Grange <thonkpeasant@protonmail.com>
set -u -e
xrval=0
(
ispwd="true"
xbdir=""
if [ "$0" != "./mk" ]; then
if [ "${0##*/}" != "$0" ]; then
xbdir="`readlink -f "$0" 2>/dev/null`"
if [ -z "$xbdir" ]; then
xbdir="`realpath "$0" 2>/dev/null`"
fi
cd "${xbdir%/*}" || exit 1
else
ispwd="false"
fi
fi
if [ "$ispwd" = "true" ] && [ -L "mk" ]; then
ispwd="false"
fi
if [ "$ispwd" = "false" ]; then
printf "You must run this in the proper work directory.\n" 1>&2
exit 1
fi
. "include/lib.sh"
. "include/init.sh"
. "include/vendor.sh"
. "include/mrc.sh"
. "include/inject.sh"
. "include/rom.sh"
. "include/release.sh"
. "include/get.sh"
. "include/chromebook.sh"
main()
{
cmd=""
if [ $# -gt 0 ]; then
cmd="$1"
shift 1
fi
if ! xeq main "$cmd" \
version release download inject prep_mr_import; then
return 0
fi
$cmd "$@"
set -u -e
return 1
}
main "$@" || exit 0
. "include/tree.sh"
trees "$@" || exit 0
x_ touch "$mkhelpercfg"
. "$mkhelpercfg"
$cmd
) || xrval=1
exit $xrval