summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/contrib/progress.cc2
-rw-r--r--apt-private/acqprogress.cc2
-rw-r--r--apt-private/private-download.cc11
-rw-r--r--apt-private/private-download.h12
-rw-r--r--apt-private/private-install.cc3
-rw-r--r--apt-private/private-update.cc15
-rw-r--r--cmdline/apt-get.cc13
-rw-r--r--cmdline/apt-helper.cc4
-rw-r--r--cmdline/apt.cc18
-rwxr-xr-xtest/integration/test-apt-cli-update4
-rwxr-xr-xtest/integration/test-apt-update-nofallback2
-rwxr-xr-xtest/integration/test-apt-update-rollback4
12 files changed, 51 insertions, 39 deletions
diff --git a/apt-pkg/contrib/progress.cc b/apt-pkg/contrib/progress.cc
index 4ff4f181d..b93018154 100644
--- a/apt-pkg/contrib/progress.cc
+++ b/apt-pkg/contrib/progress.cc
@@ -132,7 +132,7 @@ OpTextProgress::OpTextProgress(Configuration &Config) :
{
if (Config.FindI("quiet",0) >= 1 || Config.FindB("quiet::NoUpdate", false) == true)
NoUpdate = true;
- if (Config.FindI("quiet",0) >= 2)
+ if (Config.FindI("quiet",0) >= 2 || Config.FindB("quiet::NoProgress", false) == true)
NoDisplay = true;
}
/*}}}*/
diff --git a/apt-private/acqprogress.cc b/apt-private/acqprogress.cc
index 62b2c13d0..dcc538a39 100644
--- a/apt-private/acqprogress.cc
+++ b/apt-private/acqprogress.cc
@@ -37,6 +37,8 @@ AcqTextStatus::AcqTextStatus(std::ostream &out, unsigned int &ScreenWidth,unsign
// testcases use it to disable pulses without disabling other user messages
if (Quiet == 0 && _config->FindB("quiet::NoUpdate", false) == true)
this->Quiet = 1;
+ if (Quiet < 2 && _config->FindB("quiet::NoProgress", false) == true)
+ this->Quiet = 2;
}
/*}}}*/
// AcqTextStatus::Start - Downloading has started /*{{{*/
diff --git a/apt-private/private-download.cc b/apt-private/private-download.cc
index 8a57ccc86..96d44b1c5 100644
--- a/apt-private/private-download.cc
+++ b/apt-private/private-download.cc
@@ -10,6 +10,7 @@
#include <apt-private/private-output.h>
#include <apt-private/private-download.h>
+#include <apt-private/acqprogress.h>
#include <fstream>
#include <string>
@@ -39,8 +40,8 @@ bool CheckAuth(pkgAcquire& Fetcher, bool const PromptUser)
return AuthPrompt(UntrustedList, PromptUser);
}
-
-bool AuthPrompt(std::vector<std::string> const &UntrustedList, bool const PromptUser)
+ /*}}}*/
+bool AuthPrompt(std::vector<std::string> const &UntrustedList, bool const PromptUser)/*{{{*/
{
ShowList(c2out,_("WARNING: The following packages cannot be authenticated!"), UntrustedList,
[](std::string const&) { return true; },
@@ -148,3 +149,9 @@ bool CheckFreeSpaceBeforeDownload(std::string const &Dir, unsigned long long Fet
return true;
}
/*}}}*/
+
+aptAcquireWithTextStatus::aptAcquireWithTextStatus() : pkgAcquire::pkgAcquire(),
+ Stat(std::cout, ScreenWidth, _config->FindI("quiet",0))
+{
+ SetLog(&Stat);
+}
diff --git a/apt-private/private-download.h b/apt-private/private-download.h
index 80643e0f2..7df8f284a 100644
--- a/apt-private/private-download.h
+++ b/apt-private/private-download.h
@@ -1,13 +1,14 @@
#ifndef APT_PRIVATE_DOWNLOAD_H
#define APT_PRIVATE_DOWNLOAD_H
+#include <apt-pkg/acquire.h>
#include <apt-pkg/macros.h>
+#include <apt-private/acqprogress.h>
+
#include <string>
#include <vector>
-class pkgAcquire;
-
// Check if all files in the fetcher are authenticated
APT_PUBLIC bool CheckAuth(pkgAcquire& Fetcher, bool const PromptUser);
@@ -19,4 +20,11 @@ APT_PUBLIC bool AcquireRun(pkgAcquire &Fetcher, int const PulseInterval, bool *
APT_PUBLIC bool CheckFreeSpaceBeforeDownload(std::string const &Dir, unsigned long long FetchBytes);
+class APT_PUBLIC aptAcquireWithTextStatus : public pkgAcquire
+{
+ AcqTextStatus Stat;
+public:
+ aptAcquireWithTextStatus();
+};
+
#endif
diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc
index dda5b50be..52572ed80 100644
--- a/apt-private/private-install.cc
+++ b/apt-private/private-install.cc
@@ -134,8 +134,7 @@ bool InstallPackages(CacheFile &Cache,bool ShwKept,bool Ask, bool Safety)
return false;
// Create the download object
- AcqTextStatus Stat(std::cout, ScreenWidth,_config->FindI("quiet",0));
- pkgAcquire Fetcher(&Stat);
+ aptAcquireWithTextStatus Fetcher;
if (_config->FindB("APT::Get::Print-URIs", false) == true)
{
// force a hashsum for compatibility reasons
diff --git a/apt-private/private-update.cc b/apt-private/private-update.cc
index 1323771f0..1e5d69512 100644
--- a/apt-private/private-update.cc
+++ b/apt-private/private-update.cc
@@ -13,6 +13,7 @@
#include <apt-private/acqprogress.h>
#include <apt-private/private-cachefile.h>
+#include <apt-private/private-download.h>
#include <apt-private/private-output.h>
#include <apt-private/private-update.h>
@@ -37,20 +38,15 @@ bool DoUpdate(CommandLine &CmdL)
return false;
pkgSourceList *List = Cache.GetSourceList();
- // Create the progress
- AcqTextStatus Stat(std::cout, ScreenWidth,_config->FindI("quiet",0));
-
// Just print out the uris an exit if the --print-uris flag was used
if (_config->FindB("APT::Get::Print-URIs") == true)
{
// force a hashsum for compatibility reasons
_config->CndSet("Acquire::ForceHash", "md5sum");
- // get a fetcher
- pkgAcquire Fetcher(&Stat);
-
- // Populate it with the source selection and get all Indexes
+ // Populate it with the source selection and get all Indexes
// (GetAll=true)
+ aptAcquireWithTextStatus Fetcher;
if (List->GetIndexes(&Fetcher,true) == false)
return false;
@@ -70,7 +66,10 @@ bool DoUpdate(CommandLine &CmdL)
// do the work
if (_config->FindB("APT::Get::Download",true) == true)
- ListUpdate(Stat, *List);
+ {
+ AcqTextStatus Stat(std::cout, ScreenWidth,_config->FindI("quiet",0));
+ ListUpdate(Stat, *List);
+ }
// Rebuild the cache.
if (_config->FindB("pkgCacheFile::Generate", true) == true)
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index 1379c607e..2a19360c8 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -595,14 +595,12 @@ static bool DoDownload(CommandLine &CmdL)
if (verset.empty() == true)
return false;
- AcqTextStatus Stat(std::cout, ScreenWidth,_config->FindI("quiet",0));
- pkgAcquire Fetcher(&Stat);
-
pkgRecords Recs(Cache);
pkgSourceList *SrcList = Cache.GetSourceList();
// reuse the usual acquire methods for deb files, but don't drop them into
// the usual directories - keep everything in the current directory
+ aptAcquireWithTextStatus Fetcher;
std::vector<std::string> storefile(verset.size());
std::string const cwd = SafeGetCWD();
_config->Set("Dir::Cache::Archives", cwd);
@@ -693,10 +691,6 @@ static bool DoSource(CommandLine &CmdL)
if (_error->PendingError() == true)
return false;
- // Create the download object
- AcqTextStatus Stat(std::cout, ScreenWidth,_config->FindI("quiet",0));
- pkgAcquire Fetcher(&Stat);
-
std::unique_ptr<DscFile[]> Dsc(new DscFile[CmdL.FileSize()]);
// insert all downloaded uris into this set to avoid downloading them
@@ -711,6 +705,7 @@ static bool DoSource(CommandLine &CmdL)
bool const dscOnly = _config->FindB("APT::Get::Dsc-Only", false);
// Load the requestd sources into the fetcher
+ aptAcquireWithTextStatus Fetcher;
unsigned J = 0;
std::vector<std::string> UntrustedList;
for (const char **I = CmdL.FileList + 1; *I != 0; I++, J++)
@@ -1368,13 +1363,11 @@ static bool DoChangelog(CommandLine &CmdL)
CmdL.FileList + 1, APT::CacheSetHelper::CANDIDATE, helper);
if (verset.empty() == true)
return false;
- pkgAcquire Fetcher;
- AcqTextStatus Stat(std::cout, ScreenWidth,_config->FindI("quiet",0));
- Fetcher.SetLog(&Stat);
bool const downOnly = _config->FindB("APT::Get::Download-Only", false);
bool const printOnly = _config->FindB("APT::Get::Print-URIs", false);
+ aptAcquireWithTextStatus Fetcher;
for (APT::VersionList::const_iterator Ver = verset.begin();
Ver != verset.end();
++Ver)
diff --git a/cmdline/apt-helper.cc b/cmdline/apt-helper.cc
index ff9061dc7..186fded17 100644
--- a/cmdline/apt-helper.cc
+++ b/cmdline/apt-helper.cc
@@ -50,9 +50,7 @@ static bool DoDownloadFile(CommandLine &CmdL)
if (CmdL.FileSize() <= 2)
return _error->Error(_("Must specify at least one pair url/filename"));
- AcqTextStatus Stat(std::cout, ScreenWidth,_config->FindI("quiet",0));
- pkgAcquire Fetcher(&Stat);
-
+ aptAcquireWithTextStatus Fetcher;
size_t fileind = 0;
std::vector<std::string> targetfiles;
while (fileind + 2 <= CmdL.FileSize())
diff --git a/cmdline/apt.cc b/cmdline/apt.cc
index 98e715625..eb16b561c 100644
--- a/cmdline/apt.cc
+++ b/cmdline/apt.cc
@@ -39,10 +39,10 @@
static bool ShowHelp(CommandLine &, CommandLine::DispatchWithHelp const * Cmds)
{
- ioprintf(c1out, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
+ ioprintf(std::cout, "%s %s (%s)\n", PACKAGE, PACKAGE_VERSION, COMMON_ARCH);
// FIXME: generate from CommandLine
- c1out <<
+ std::cout <<
_("Usage: apt [options] command\n"
"\n"
"CLI for apt.\n")
@@ -87,13 +87,19 @@ int main(int argc, const char *argv[]) /*{{{*/
{nullptr, nullptr, nullptr}
};
- // FIXME: Those ignore commandline configuration like -q
- InitSignals();
- InitOutput();
-
CommandLine CmdL;
ParseCommandLine(CmdL, Cmds, "apt", &_config, &_system, argc, argv, ShowHelp);
+ int const quiet = _config->FindI("quiet", 0);
+ if (quiet == 2)
+ {
+ _config->CndSet("quiet::NoProgress", true);
+ _config->Set("quiet", 1);
+ }
+
+ InitSignals();
+ InitOutput();
+
CheckIfCalledByScript(argc, argv);
CheckIfSimulateMode(CmdL);
diff --git a/test/integration/test-apt-cli-update b/test/integration/test-apt-cli-update
index dad365f7e..5d8503404 100755
--- a/test/integration/test-apt-cli-update
+++ b/test/integration/test-apt-cli-update
@@ -15,8 +15,8 @@ setupaptarchive --no-update
testfailuremsg 'E: The update command takes no arguments' apt update arguments
-testsuccessequal "1 package can be upgraded. Run 'apt list --upgradable' to see it." apt update -q
+testsuccessequal "1 package can be upgraded. Run 'apt list --upgradable' to see it." apt update -qq
cp dpkg.status rootdir/var/lib/dpkg/status
insertinstalledpackage 'foo' 'all' '2.0'
-testsuccessequal 'All packages are up to date.' apt update -q
+testsuccessequal 'All packages are up to date.' apt update -qq
diff --git a/test/integration/test-apt-update-nofallback b/test/integration/test-apt-update-nofallback
index 1b23d4f11..a12a08ab1 100755
--- a/test/integration/test-apt-update-nofallback
+++ b/test/integration/test-apt-update-nofallback
@@ -42,7 +42,7 @@ N: See apt-secure(8) manpage for repository creation and user configuration deta
assert_repo_is_intact()
{
- testsuccessequal "foo/unstable 2.0 all" apt list -q
+ testsuccessequal "foo/unstable 2.0 all" apt list -qq
testsuccess aptget install -y -s foo
testfailure aptget install -y evil
testsuccess aptget source foo --print-uris
diff --git a/test/integration/test-apt-update-rollback b/test/integration/test-apt-update-rollback
index 12d541055..e19240206 100755
--- a/test/integration/test-apt-update-rollback
+++ b/test/integration/test-apt-update-rollback
@@ -38,7 +38,7 @@ start_with_good_inrelease() {
create_fresh_archive
testsuccess aptget update
listcurrentlistsdirectory > lists.before
- testsuccessequal 'old/unstable 1.0 all' apt list -q
+ testsuccessequal 'old/unstable 1.0 all' apt list -qq
}
test_inrelease_to_new_inrelease() {
@@ -48,7 +48,7 @@ test_inrelease_to_new_inrelease() {
add_new_package '+1hour'
testsuccess aptget update -o Debug::Acquire::Transaction=1
testsuccessequal 'new/unstable 1.0 all
-old/unstable 1.0 all' apt list -q
+old/unstable 1.0 all' apt list -qq
}
test_inrelease_to_broken_hash_reverts_all() {