debconf-apt-progress installs packages using debconf to display a progress bar. The given command should be any command-line apt frontend; specifically, it must send progress information to the file descriptor selected by the "APT::Status-Fd" configuration option, and must keep the file descriptors nominated by the "APT::Keep-Fds" configuration option open when invoking debconf (directly or indirectly), as those file descriptors will be used for the debconf passthrough protocol.
The arguments to the command you supply should generally include -y (for apt-get or aptitude) or similar to avoid the apt frontend prompting for input. debconf-apt-progress cannot do this itself because the appropriate argument may differ between apt frontends.
The --start, --stop, --from, and --to options may be used to create a progress bar with multiple segments for different stages of installation, provided that the caller is a debconf confmodule. The caller may also interact with the progress bar itself using the debconf protocol if it so desires.
debconf locks its config database when it starts up, which makes it unfortunately inconvenient to have one instance of debconf displaying the progress bar and another passing through questions from packages being installed. If you're using a multiple-segment progress bar, you'll need to eval the output of the --config option before starting the debconf frontend to work around this. See ``EXAMPLES'' in the EXAMPLES section below.
Install the GNOME desktop and an X window system development environment within a progress bar:
debconf-apt-progress -- aptitude -y install gnome x-window-system-dev
Install the GNOME, KDE, and XFCE desktops within a single progress bar, allocating 45% of the progress bar for each of GNOME and KDE and the remaining 10% for XFCE:
#! /bin/sh set -e case $1 in '') eval "$(debconf-apt-progress --config)" "$0" debconf ;; debconf) . /usr/share/debconf/confmodule debconf-apt-progress --start debconf-apt-progress --from 0 --to 45 -- apt-get -y install gnome debconf-apt-progress --from 45 --to 90 -- apt-get -y install kde debconf-apt-progress --from 90 --to 100 -- apt-get -y install xfce4 debconf-apt-progress --stop ;; esac
The exit code of the specified command is returned, unless the user hit the cancel button on the progress bar. If the cancel button was hit, a value of 30 is returned. To avoid ambiguity, if the command returned 30, a value of 3 will be returned.