diff options
-rw-r--r-- | apt-pkg/contrib/progress.cc | 2 | ||||
-rw-r--r-- | apt-private/acqprogress.cc | 2 | ||||
-rw-r--r-- | apt-private/private-download.cc | 11 | ||||
-rw-r--r-- | apt-private/private-download.h | 12 | ||||
-rw-r--r-- | apt-private/private-install.cc | 3 | ||||
-rw-r--r-- | apt-private/private-update.cc | 15 | ||||
-rw-r--r-- | cmdline/apt-get.cc | 13 | ||||
-rw-r--r-- | cmdline/apt-helper.cc | 4 | ||||
-rw-r--r-- | cmdline/apt.cc | 18 | ||||
-rwxr-xr-x | test/integration/test-apt-cli-update | 4 | ||||
-rwxr-xr-x | test/integration/test-apt-update-nofallback | 2 | ||||
-rwxr-xr-x | test/integration/test-apt-update-rollback | 4 |
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() { |