#include <algorithm>
#include <zypp/PoolQuery.h>
+#include <zypp/ResObjects.h>
static std::string appname( "DumpSelectable" );
cerr << " Selectables names NAME" << endl;
cerr << " --root Load repos from the system located below ROOTDIR. If ROOTDIR" << endl;
cerr << " denotes a sover testcase, the testcase is loaded." << endl;
+ cerr << " -v Verbose list solvables data." << endl;
cerr << "" << endl;
return exit_r;
}
+void dumpPi( std::ostream & message, const PoolItem & pi )
+{
+ std::string indent(" ");
+ message << indent << "--------------------------------------------------" << endl;
+ message << indent << (pi->isSystem() ? "i " : "a ") << pi->satSolvable().asString() << endl;
+ message << indent << pi->summary() << endl;
+ if ( pi->isKind<Package>() )
+ {
+ message << indent << pi->asKind<Package>()->changelog() << endl;
+ }
+}
+
/******************************************************************
**
** FUNCTION NAME : main
appname = Pathname::basename( argv[0] );
--argc,++argv;
+ Pathname sysRoot("/");
+ bool verbose = false;
+
+ while ( argc && (*argv)[0] == '-' )
+ {
+ if ( (*argv) == std::string("--root") )
+ {
+ --argc,++argv;
+ if ( ! argc )
+ return errexit("--root requires an argument.");
+
+ if ( ! PathInfo( *argv ).isDir() )
+ return errexit("--root requires a directory.");
+
+ sysRoot = *argv;
+ }
+ else if ( (*argv) == std::string("-v") )
+ {
+ verbose = true;
+ }
+
+ --argc,++argv;
+ }
+
if ( ! argc )
{
return usage();
///////////////////////////////////////////////////////////////////
ZConfig::instance();
- Pathname sysRoot("/");
sat::Pool satpool( sat::Pool::instance() );
- if ( (*argv) == std::string("--root") )
- {
- --argc,++argv;
- if ( ! argc )
- return errexit("--root requires an argument.");
-
- if ( ! PathInfo( *argv ).isDir() )
- return errexit("--root requires a directory.");
-
- sysRoot = *argv;
- --argc,++argv;
- }
-
if ( TestSetup::isTestcase( sysRoot ) )
{
message << str::form( "*** Load Testcase from '%s'", sysRoot.c_str() ) << endl;
for ( ; argc; --argc,++argv )
{
- message << dump( ui::Selectable::get( IdString( *argv ) ) ) << endl;
+ ui::Selectable::Ptr sel( ui::Selectable::get( IdString( *argv ) ) );
+ message << dump( sel ) << endl;
+ if ( verbose )
+ {
+ for_( it, sel->installedBegin(), sel->installedEnd() )
+ dumpPi( message, *it );
+ for_( it, sel->availableBegin(), sel->availableEnd() )
+ dumpPi( message, *it );
+ }
}
INT << "===[END]============================================" << endl << endl;