setup update complete

This commit is contained in:
2026-09-21 06:48:49 -06:00
parent b67a76d0da
commit 7b2b01e022
38 changed files with 1376 additions and 848 deletions
+61
View File
@@ -0,0 +1,61 @@
#####################################################################
setup.packages.install-from-source() { # clone + build/install a git-hosted package (AUR PKGBUILD or Makefile)
local target_url="${1}"
local name="${2:-$(echo "${target_url}" | sed 's/.*\///; s/\.git$//')}"
local install_dir="${HOME}/.local/share/source-packages"
local package_dir="${install_dir}/${name}"
mkdir -p -- "${install_dir}"
local state=missing
[[ -d "${package_dir}" ]] && state=exists
case "${state}" in
( exists )
: \
&& echo.status "updating '${name}'" \
&& git -C "${package_dir}" pull origin "$(git -C "${package_dir}" rev-parse --abbrev-ref HEAD)" \
;
;;
( missing )
: \
&& echo.status "downloading '${name}'" \
&& git clone -- "${target_url}" "${package_dir}" \
;
;;
esac \
|| echo.error "failed to fetch '${name}'" \
|| return 1
local build_method=unknown
[[ -f "${package_dir}/PKGBUILD" ]] && build_method=makepkg
[[ -f "${package_dir}/Makefile" ]] && [[ "${build_method}" == unknown ]] && build_method=make
case "${build_method}" in
( makepkg )
: \
&& echo.status "installing '${name}'" \
&& ( cd -- "${package_dir}" && yes | makepkg -si ) \
&& echo.success "successfully installed '${name}'" \
|| echo.error "failed to install '${name}'" \
;
;;
( make )
: \
&& echo.status "building '${name}'" \
&& make -C "${package_dir}" \
&& : \
&& echo.status "installing '${name}'" \
&& utils.io.getsudo \
&& sudo make -C "${package_dir}" install \
&& echo.success "successfully installed '${name}'" \
|| echo.error "failed to build/install '${name}'" \
;
;;
( unknown )
echo.warning 'could not detect supported installation method'
echo.reminder 'complete manual installation in the directory below:'
echo.reminder "${package_dir}"
;;
esac
}