diff options
author | Michael Vogt <michael.vogt@ubuntu.com> | 2005-08-09 08:38:26 +0000 |
---|---|---|
committer | Michael Vogt <michael.vogt@ubuntu.com> | 2005-08-09 08:38:26 +0000 |
commit | 75ef8f14174f83a5f876a0d7414f4e6064a7d3e0 (patch) | |
tree | 9be3141205921e40fcdb8b6d8c7d441f40d5d47e /apt-pkg/acquire.cc | |
parent | dc2cd7d5c4889a6cc09b5a5a9eb35c74f86c2712 (diff) | |
download | apt-75ef8f14174f83a5f876a0d7414f4e6064a7d3e0.tar.gz |
* merged from main
Patches applied:
* apt@packages.debian.org/apt--main--0--patch-106
Restore lost changelog entries
* apt@packages.debian.org/apt--main--0--patch-107
Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0
* apt@packages.debian.org/apt--main--0--patch-108
Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0
* apt@packages.debian.org/apt--main--0--patch-109
Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0
* apt@packages.debian.org/apt--main--0--patch-110
Merge michael.vogt@ubuntu.com--2005/apt--progress-reporting--0
* michael.vogt@ubuntu.com--2005/apt--fixes--0--patch-5
* merged with apt--main--0
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--base-0
tag of apt@packages.debian.org/apt--main--0--patch-85
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-1
* inital proof of concept code, understands what dpkg tells it already
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-2
* progress reporting works now
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-3
* added "APT::Status-Fd" variable
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-4
* do i18n now too
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-5
* define N_(x) if it is not defined already
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-6
* PackageManager::DoInstall(int status_fd) added (does not break the ABI)
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-7
* merged with apt--fixes--0 to make it build again
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-8
* added support for "error" and "conffile-prompt" messages from dpkg
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-9
merge with main
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-10
* use sizeof() for all snprintf() uses; fix a potential line break problem in the status reading code; changed the N_() to _() calls
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-11
* added APT::KeepFDs configuration list for file descriptors that apt should leave open (needed for various frontends like debconf, synaptic)
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-12
* fixed a API breakage
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-13
* doc added, should be releasable now
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-14
* merged with apt--main--0
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-15
* more source comments, added Debug::DpkgPM debug code to inspect the dpkg<->apt communication, broke the abi (ok with matt)
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-16
* the progress reporting has it's own "Debug::pkgDPkgProgressReporting" debug variable now
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-17
* merged PackageOps and TranslatedPackageOps into a single Map with the new DpkgState struct
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-18
* clear the APT::Keep-Fds configuration when it's no longer needed
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-19
* rewrote the reading from dpkg so that it never blocks
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-20
* merged the two status arrays into one
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-21
* added support for download progress reporting too (for Kamion and base-config)
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-22
* ABI break; added Configuration::Clear(string List, {int,string} value) added (to remove a single Value from a list); test/conf_clear.cc added
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-23
* remvoed a debug string
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-24
* soname changed, fixed a bug in the parsing code when dpkg send the same state more than once (at the end)
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-25
* merged with apt@packages.debian.org/apt--main--0, added changelog entry for the 0.6.40.1 upload
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-26
* fix a bug when out-of-order states are send from dpkg
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-27
* changelog update
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-28
* a real changelog entry now
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-29
* changelog finalized
* michael.vogt@ubuntu.com--2005/apt--progress-reporting--0--patch-30
* propper (and sane) support for pmerror and pmconffile added
Diffstat (limited to 'apt-pkg/acquire.cc')
-rw-r--r-- | apt-pkg/acquire.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/apt-pkg/acquire.cc b/apt-pkg/acquire.cc index 70dce4f54..62209e65b 100644 --- a/apt-pkg/acquire.cc +++ b/apt-pkg/acquire.cc @@ -26,6 +26,7 @@ #include <apti18n.h> #include <iostream> +#include <sstream> #include <dirent.h> #include <sys/time.h> @@ -803,6 +804,26 @@ bool pkgAcquireStatus::Pulse(pkgAcquire *Owner) Time = NewTime; } + int fd = _config->FindI("APT::Status-Fd",-1); + if(fd > 0) + { + ostringstream status; + + char msg[200]; + long i = CurrentItems < TotalItems ? CurrentItems + 1 : CurrentItems; + unsigned long ETA = + (unsigned long)((TotalBytes - CurrentBytes) / CurrentCPS); + + snprintf(msg,sizeof(msg), _("Downloading file %li of %li (%s remaining)"), i, TotalItems, TimeToStr(ETA).c_str()); + + // build the status str + status << "dlstatus:" << i + << ":" << (CurrentBytes/float(TotalBytes)*100.0) + << ":" << msg + << endl; + write(fd, status.str().c_str(), status.str().size()); + } + return true; } /*}}}*/ |