diff options
author | Michael Vogt <mvo@debian.org> | 2014-01-31 08:57:34 +0100 |
---|---|---|
committer | Michael Vogt <mvo@debian.org> | 2014-01-31 08:57:34 +0100 |
commit | 4afa7d18b37661996d188959ba7917824e1545d3 (patch) | |
tree | 5e0349bb154215d90da23fdeebeb084b4cc1c558 | |
parent | 960975a175c2a21df749727162d5677cdc97a36e (diff) |
show "status" in apt list last
-rw-r--r-- | apt-private/private-output.cc | 49 | ||||
-rwxr-xr-x | test/integration/test-apt-cli-list | 18 |
2 files changed, 33 insertions, 34 deletions
diff --git a/apt-private/private-output.cc b/apt-private/private-output.cc index e9b8037da..2ae112af4 100644 --- a/apt-private/private-output.cc +++ b/apt-private/private-output.cc @@ -190,45 +190,44 @@ void ListSingleVersion(pkgCacheFile &CacheFile, pkgRecords &records, /*{{{*/ // raring/linux-kernel version [upradable: new-version] // description pkgPolicy *policy = CacheFile.GetPolicy(); - out << std::setiosflags(std::ios::left) - << _config->Find("APT::Color::Highlight", "") - << name_str - << _config->Find("APT::Color::Neutral", "") - << "/" << suite - << " "; + std::string VersionStr = GetVersion(CacheFile, V); + std::string CandidateVerStr = GetCandidateVersion(CacheFile, P); + std::string InstalledVerStr = GetInstalledVersion(CacheFile, P); + std::string StatusStr; if(P.CurrentVer() == V && state.Upgradable()) { - out << GetVersion(CacheFile, V) - << " " - << "[" << _("installed,upgradable to: ") - << GetCandidateVersion(CacheFile, P) << "]"; + strprintf(StatusStr, _("[installed,upgradable to: %s]"), + CandidateVerStr.c_str()); } else if (P.CurrentVer() == V) { - out << GetVersion(CacheFile, V) - << " "; if(!V.Downloadable()) - out << _("[installed,local]"); + StatusStr = _("[installed,local]"); else if(V.Automatic() && state.Garbage) - out << _("[installed,auto-removable]"); + StatusStr = _("[installed,auto-removable]"); else if (state.Flags & pkgCache::Flag::Auto) - out << _("[installed,automatic]"); + StatusStr = _("[installed,automatic]"); else - out << _("[installed]"); + StatusStr = _("[installed]"); } else if (P.CurrentVer() && policy->GetCandidateVer(P) == V && state.Upgradable()) { - out << GetVersion(CacheFile, V) - << " " - << _("[upgradable from: ") - << GetInstalledVersion(CacheFile, P) << "]"; + strprintf(StatusStr, _("[upgradable from: %s]"), + InstalledVerStr.c_str()); } else { if (V.ParentPkg()->CurrentState == pkgCache::State::ConfigFiles) - out << GetVersion(CacheFile, V) - << " " - << _("[residual-config]"); + StatusStr = _("[residual-config]"); else - out << GetVersion(CacheFile, V); + StatusStr = ""; } - out << " " << GetArchitecture(CacheFile, P); + out << std::setiosflags(std::ios::left) + << _config->Find("APT::Color::Highlight", "") + << name_str + << _config->Find("APT::Color::Neutral", "") + << "/" << suite + << " " + << VersionStr << " " + << GetArchitecture(CacheFile, P); + if (StatusStr != "") + out << " " << StatusStr; if (include_summary) { out << std::endl diff --git a/test/integration/test-apt-cli-list b/test/integration/test-apt-cli-list index 8d5df9051..47507aeb8 100755 --- a/test/integration/test-apt-cli-list +++ b/test/integration/test-apt-cli-list @@ -18,30 +18,30 @@ setupaptarchive APTARCHIVE=$(readlink -f ./aptarchive) testequal "Listing... -bar/now 1.0 [installed,local] i386 +bar/now 1.0 i386 [installed,local] foo/unstable 1.0 all -foobar/unstable 2.0 [upgradable from: 1.0] i386" apt list +foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list testequal "Listing... foo/unstable 1.0 all -foobar/unstable 2.0 [upgradable from: 1.0] i386" apt list "foo*" +foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list "foo*" testequal "Listing... -foobar/unstable 2.0 [upgradable from: 1.0] i386" apt list --upgradable +foobar/unstable 2.0 i386 [upgradable from: 1.0]" apt list --upgradable # FIXME: hm, hm - does it make sense to have this different? shouldn't # we use "installed,upgradable" consitently? testequal "Listing... -bar/now 1.0 [installed,local] i386 -foobar/now 1.0 [installed,upgradable to: 2.0] i386" apt list --installed +bar/now 1.0 i386 [installed,local] +foobar/now 1.0 i386 [installed,upgradable to: 2.0]" apt list --installed testequal "Listing... -foobar/unstable 2.0 [upgradable from: 1.0] i386 -foobar/now 1.0 [installed,upgradable to: 2.0] i386 +foobar/unstable 2.0 i386 [upgradable from: 1.0] +foobar/now 1.0 i386 [installed,upgradable to: 2.0] " apt list foobar --all-versions testequal "Listing... -bar/now 1.0 [installed,local] i386 +bar/now 1.0 i386 [installed,local] an autogenerated dummy bar=1.0/installed " apt list bar --verbose |