get docker working

This commit is contained in:
2025-07-28 19:03:56 -05:00
parent 1ee24a8b6a
commit 5f797dad30
9 changed files with 152 additions and 46 deletions

34
main.sh
View File

@@ -1,6 +1,13 @@
#!/usr/bin/env bash
REPO_DIR="$(cd "${BASH_SOURCE[0]//'main.sh'/}" && echo "$PWD")"
# set top dir
relativeRepoRoot="${BASH_SOURCE[0]//'main.sh'/}"
if [[ -d ${relativeRepoRoot} ]]; then
preloadCmd="cd ${relativeRepoRoot} &&"
fi
REPO_DIR="$(${preloadCmd} echo "$PWD")"
unset relativeRepoRoot preloadCmd
IGN_DIR="${REPO_DIR}/gitignore"
TMP_DIR="${IGN_DIR}/tmp"
DL_DIR="${IGN_DIR}/downloads"
@@ -9,28 +16,28 @@ CCACHE_DIR="${IGN_DIR}/ccache"
export REPO_DIR IGN_DIR TMP_DIR DL_DIR BUILD_DIR CCACHE_DIR
# function names, descriptions, completions
unset FB_FUNC_NAMES FB_FUNC_DESCS FB_FUNC_COMPLETION
FB_FUNC_NAMES=()
declare -A FB_FUNC_DESCS
declare -A FB_FUNC_COMPLETION
declare -A FB_FUNC_DESCS FB_FUNC_COMPLETION
# can't have recursive generation
FB_RUNNING_AS_SCRIPT=${FB_RUNNING_AS_SCRIPT:-0}
# no undefined variables
set -u
# shellcheck disable=SC2034
FB_COMPILE_OPTS_SET=0
SCRIPT_DIR="${REPO_DIR}/scripts"
ENTRY_SCRIPT="${SCRIPT_DIR}/entry.sh"
src_scripts() {
local SCRIPT_DIR="${REPO_DIR}/scripts"
rm "${SCRIPT_DIR}"*.sh
if [[ $FB_RUNNING_AS_SCRIPT -eq 0 ]]; then
rm "${SCRIPT_DIR}"/*.sh
# shellcheck disable=SC2016
echo '#!/usr/bin/env bash
cd "$(dirname "$(readlink -f $0)")/.."
export FB_RUNNING_AS_SCRIPT=1
. main.sh
FB_RUNNING_AS_SCRIPT=1
scr_name="$(bash_basename $0)"
cmd="${scr_name//.sh}"
$cmd $@' >"${ENTRY_SCRIPT}"
@@ -49,21 +56,21 @@ print_cmds() {
echo -e "\n~~~ Usable Commands ~~~"
for funcname in "${FB_FUNC_NAMES[@]}"; do
echo -e "${CYAN}${funcname}${NC}:\n\t" "${FB_FUNC_DESCS[${funcname}]}"
fb_running_as_script || (cd "$SCRIPT_DIR" && ln -sf entry.sh "${funcname}.sh")
if [[ $FB_RUNNING_AS_SCRIPT -eq 0 ]]; then
(cd "$SCRIPT_DIR" && ln -sf entry.sh "${funcname}.sh")
fi
done
echo -e "~~~~~~~~~~~~~~~~~~~~~~~\n"
}
set_completions() {
set +u
for funcname in "${FB_FUNC_NAMES[@]}"; do
complete -W "${FB_FUNC_COMPLETION[${funcname}]}" "${funcname}"
done
set -u
}
# shellcheck disable=SC1091
source "${HOME}/.bashrc"
test -f "${HOME}/.bashrc" && source "${HOME}/.bashrc"
src_scripts || return 1
determine_pkg_mgr || return 1
@@ -71,6 +78,7 @@ determine_pkg_mgr || return 1
# shellcheck disable=SC2154
test "${PREFIX}" == '' && PREFIX="${IGN_DIR}/${pkg_mgr}_sysroot"
set_compile_opts || return 1
fb_running_as_script || print_cmds || return 1
if [[ $FB_RUNNING_AS_SCRIPT -eq 0 ]]; then
print_cmds || return 1
fi
set_completions || return 1