From f3509b7e2b80a8ee3fbe092d46646612e63ca736 Mon Sep 17 00:00:00 2001 From: bill-auger Date: Tue, 7 May 2019 07:53:48 -0400 Subject: sq - cache --- configs/profile/build.sh | 4 ++-- parabolaiso/mkparabolaiso | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/configs/profile/build.sh b/configs/profile/build.sh index 6f9f7eb..c26982a 100755 --- a/configs/profile/build.sh +++ b/configs/profile/build.sh @@ -136,8 +136,8 @@ make_packages() { # create live environment local repo or stash package cache if [[ "$enable_offline_install" == 'true' ]]; then if [[ -n ${_cache_packages} ]]; then - # download cache packages - setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir}/${arch} -C ${pacman_conf} -D ${iso_dirname} -p "${_cache_packages}" -O install + # download any cache packages and prune obsolete packages + cache_only='true' setarch ${arch} mkparabolaiso ${verbose} -w ${work_dir}/${arch} -C ${pacman_conf} -D ${iso_dirname} -p "${_cache_packages}" -O install fi # create 'isorepo' for offline install pushd ${work_dir}/${arch}/root-image/isorepo > /dev/null diff --git a/parabolaiso/mkparabolaiso b/parabolaiso/mkparabolaiso index a7eb760..f13b0ba 100755 --- a/parabolaiso/mkparabolaiso +++ b/parabolaiso/mkparabolaiso @@ -251,7 +251,9 @@ _pacman () _msg_info "Packages installed successfully!" } -# Cache uninstalled packages in offline /isorepo +# Cache uninstalled packages in offline /isorepo and prune un-needed packages packages. +# Optimally, this function should be called only once after all packages are installed +# and even if there are no 'cache-only' packages. _pacman_cache () { _msg_info "Caching packages to '${work_dir}/root-image/'..." @@ -280,10 +282,12 @@ _pacman_cache () popd > /dev/null # download any missing packages - if [[ "${quiet}" = "y" ]]; then - pacman -Sw --root "${work_dir}/root-image" --config "${pacman_conf}" --noconfirm $* &> /dev/null - else - pacman -Sw --root "${work_dir}/root-image" --config "${pacman_conf}" --noconfirm $* + if [[ "${_package_files}" ]]; then + if [[ "${quiet}" = "y" ]]; then + pacman -Sw --root "${work_dir}/root-image" --config "${pacman_conf}" --noconfirm $* &> /dev/null + else + pacman -Sw --root "${work_dir}/root-image" --config "${pacman_conf}" --noconfirm $* + fi fi _chroot_umount @@ -569,7 +573,7 @@ command_install () { if [[ -f "${work_dir}/install.${_pkg_list_hash}" ]]; then _msg_info "These packages are already installed, skipping." else - if [[ "${enable_offline_install}" == 'true' ]]; then + if [[ "${cache_only:-}" == 'true' ]]; then _pacman_cache "${pkg_list}" else _pacman "${pkg_list}" -- cgit v1.2.2