commit 01f01ed67621df55ff18d70d09ba47846f3cdf03
parent c6cc1a64713255b71d77777ca2ca4dae99e55303
Author: Morel BĂ©renger <berengermorel76@gmail.com>
Date: Mon, 14 Dec 2020 00:33:17 +0100
install.sh: improve debootstrap feedback
Diffstat:
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/TODO b/TODO
@@ -1,6 +1,5 @@
debootsrap: allow using my own package lists
debootsrap: fix not unpacking when a file conflicts (for example /etc/issue in base-files)
-debootsrap: make it debuggable, for a start, and then, make it so that it does not pollute logs but still output progress (with `pv`(1)?)
busybox: improve integration by providing symlinks in /usr/local/bin
busybox: clean up the duplicates (provided by various other packages: iproute2, psmisc, for example)
runit: move the service directory to a ramdisk
diff --git a/install.sh b/install.sh
@@ -186,9 +186,15 @@ cp -ar "$SOURCE"/root/* "$cp_target"
success "template installation done"
## bootstrap
-PKG_LIST="$(find "$SOURCE/packages" -name '*.list' -exec cat {} \+)$PKG_LIST"
-info "preparing to install $PKG_LIST (this will take some silent time)"
-debootstrap --no-merged-usr --variant=minbase "--include=$PKG_LIST" $(cat $SOURCE/distname) "$cp_target" "$MIRROR" 2>&1 >/dev/null
+PKG_LIST="$(find "$SOURCE/packages" -name '*.list' -exec cat {} \+ | tr -d '\n')"
+info "preparing to install $PKG_LIST"
+debootstrap --print-debs --keep-debootstrap-dir --variant=minbase "--include=$PKG_LIST" $(cat $SOURCE/distname) "$cp_target" "$MIRROR" > /tmp/guess.log
+NB_PKG=$(wc -l < /tmp/guess.log)
+info "$NB_PKG packages to process."
+info "downloading..."
+debootstrap --make-tarball=/tmp/packages.tar --keep-debootstrap-dir --variant=minbase "--include=$PKG_LIST" $(cat $SOURCE/distname) "$cp_target" "$MIRROR" | sed -u -n '/Validating/ p' | pv -l -s $NB_PKG > /tmp/debootstrap.dl.log
+info "installing..."
+debootstrap --no-merged-usr --unpack-tarball=/tmp/packages.tar $(cat $SOURCE/distname) "$cp_target" "$MIRROR" | stdbuf -i0 pv -l -s $(($NB_PKG * 3)) > /tmp/debootstrap.inst.log
success "install done"
info "basic configuration steps"