NRP add 'dump dependencies'
authorMichael Andres <ma@suse.de>
Fri, 2 Mar 2012 08:45:08 +0000 (09:45 +0100)
committerMichael Andres <ma@suse.de>
Fri, 2 Mar 2012 09:26:16 +0000 (10:26 +0100)
tools/NameReqPrv.cc

index 36a818f..11c41bf 100644 (file)
@@ -42,6 +42,7 @@ int usage( const std::string & msg_r = std::string(), int exit_r = 100 )
   cerr << "  -s/-S    turn on/off looking for supplements (default off)" << endl;
   cerr << "  -a       short for -n -p -r" << endl;
   cerr << "  -A       short for -n -P -R" << endl;
+  cerr << "  -D <pkg> dump dependencies of <pkg>" << endl;
   cerr << "" << endl;
   return exit_r;
 }
@@ -60,6 +61,27 @@ void tableOut( const std::string & s1 = std::string(),
   message << endl;
 }
 
+
+///////////////////////////////////////////////////////////////////
+
+void dDump( const std::string & spec_r )
+{
+  message << "DUMP " << spec_r << " {";
+
+  sat::WhatProvides q( Capability::guessPackageSpec( spec_r ) );
+  if ( q.empty() )
+  {
+    message << "}" << endl;
+    return;
+  }
+
+  for ( const auto & el : q )
+  {
+    message << endl << "==============================" << endl << dump(el);
+  }
+  message << endl << "}" << endl;
+}
+
 /******************************************************************
 **
 **      FUNCTION NAME : main
@@ -178,8 +200,17 @@ int main( int argc, char * argv[] )
     {
       switch ( (*argv)[1] )
       {
-        case 'a':  names =     true,   requires = provides =   true;   break;
-        case 'A':  names =     true,   requires = provides =   false;  break;
+        case 'a': names =      true,   requires = provides =   true;   break;
+        case 'A': names =      true,   requires = provides =   false;  break;
+       case 'D':
+         if ( argc > 1 )
+         {
+           --argc,++argv;
+           dDump( *argv );
+         }
+         else
+           return errexit("-D <pkgspec> requires an argument.");
+         break;
         case 'i': ignorecase = true;   break;
         case 'I': ignorecase = false;  break;
         case 'n': names =      true;   break;