debconf-apt-progress
install packages using debconf to display a progress bar
Synopsis
debconf-apt-progress [--] command [args ...]
debconf-apt-progress --config
debconf-apt-progress --start
debconf-apt-progress --from waypoint --to waypoint [--] command [args ...]
debconf-apt-progress --stop
add an example, a script, a trick and tips
examples
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
source
eval "$(debconf-apt-progress --config)"
"$0" debconf
;;
debconf)
. /usr/share/debconf/confmodule
db_progress START 0 100 oem-config/removing
db_progress START 0 100 oem-config/removing
db_progress INFO debconf-apt-progress/preparing
description
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.
options
--config
Print environment variables
necessary to start up a progress bar frontend.
--start
Start up a progress bar,
running from 0 to 100 by default. Use
--from and --to to use
other endpoints.
--from
waypoint
If used with
--start, make the progress bar begin at
waypoint rather than 0.
Otherwise,
install packages with their progress bar beginning at this
"waypoint". Must be used with
--to.
--to
waypoint
If used with
--start, make the progress bar end at
waypoint rather than 100.
Otherwise,
install packages with their progress bar ending at this
"waypoint". Must be used with
--from.
--stop
Stop a running progress
bar.
--no-progress
Avoid starting, stopping, or
stepping the progress bar. Progress messages from apt, media
change events, and debconf questions will still be passed
through to debconf.
--dlwaypoint
percentage
Specify what percent of the
progress bar to use for downloading packages. The remainder
will be used for installing packages. The default is to use
15% for downloading and the remaining 85% for
installing.
--logfile
file
Send the normal output from apt
to the given file.
--logstderr
Send the normal output from apt
to stderr. If you supply neither
--logfile nor
--logstderr, the normal output from apt
will be discarded.
--
Terminate options. Since you will normally need to give
at least the -y argument to the command being
run, you will usually need to use -- to
prevent that being interpreted as an option to
debconf-apt-progress itself.
return code
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.
authors
Colin Watson
<cjwatson[:at:]debian[:dot:]org>
Joey Hess
<joeyh[:at:]debian[:dot:]org>