Imported Upstream version 16.3.2
[platform/upstream/libzypp.git] / devel / devel.ma / Main.cc
1 #include "Tools.h"
2
3 #include <zypp/PoolQuery.h>
4 #include <zypp/target/rpm/librpmDb.h>
5 #include <zypp/parser/ProductFileReader.h>
6
7 #include "zypp/sat/WhatObsoletes.h"
8 #include "zypp/ExternalProgram.h"
9
10 ///////////////////////////////////////////////////////////////////
11
12 //static const Pathname sysRoot( getenv("SYSROOT") ? getenv("SYSROOT") : "/Local/ROOT" );
13 //static const Pathname sysRoot( "/tmp/ToolScanRepos" );
14 static const Pathname sysRoot( "/" );
15
16 ///////////////////////////////////////////////////////////////////
17
18 bool solve()
19 {
20   bool rres = false;
21   {
22     //zypp::base::LogControl::TmpLineWriter shutUp;
23     //getZYpp()->resolver()->setOnlyRequires( true );
24     rres = getZYpp()->resolver()->resolvePool();
25   }
26   if ( ! rres )
27   {
28     ERR << "resolve " << rres << endl;
29     getZYpp()->resolver()->problems();
30     return false;
31   }
32   MIL << "resolve " << rres << endl;
33   return true;
34 }
35
36 bool upgrade()
37 {
38   bool rres = false;
39   {
40     //zypp::base::LogControl::TmpLineWriter shutUp;
41     Measure x( "Upgrade" );
42     rres = getZYpp()->resolver()->doUpgrade();
43   }
44   if ( ! rres )
45   {
46     Measure x( "Upgrade Error" );
47     ERR << "upgrade " << rres << endl;
48     getZYpp()->resolver()->problems();
49     return false;
50   }
51   MIL << "upgrade " << rres << endl;
52   return true;
53 }
54
55 namespace zypp
56 {
57   namespace target
58   {
59     void writeUpgradeTestcase();
60   }
61 }
62
63 std::ostream & operator<<( std::ostream & str, const sat::Solvable::SplitIdent & obj )
64 {
65   str << "{" << obj.ident() << "}{" << obj.kind() << "}{" << obj.name () << "}" << endl;
66   return str;
67 }
68
69 namespace zypp {
70 std::ostream & dumpOn( std::ostream & str, const Url & obj )
71 {
72   str << "{" << obj.getHost() << "}{" << obj.getPort() << "}";
73   return str;
74 }
75 }
76
77 int main( int argc, char * argv[] )
78 try {
79   --argc;
80   ++argv;
81   zypp::base::LogControl::instance().logToStdErr();
82   INT << "===[START]==========================================" << endl;
83   ///////////////////////////////////////////////////////////////////
84   if ( sysRoot == "/" )
85     ::unsetenv( "ZYPP_CONF" );
86   ResPool   pool( ResPool::instance() );
87   sat::Pool satpool( sat::Pool::instance() );
88   ///////////////////////////////////////////////////////////////////
89   dumpRange( WAR << "satpool.multiversion " , satpool.multiversion().begin(), satpool.multiversion().end() ) << endl;
90   TestSetup::LoadSystemAt( sysRoot, Arch_i586 );
91   ///////////////////////////////////////////////////////////////////
92
93   ui::Selectable::Ptr p( getSel<Package>( "kruler" ) );
94   if ( p )
95   {
96     USR << p->setToDelete() << endl;
97     getZYpp()->resolver()->setCleandepsOnRemove( true );
98     solve();
99   }
100
101   ///////////////////////////////////////////////////////////////////
102   INT << "===[END]============================================" << endl << endl;
103   zypp::base::LogControl::instance().logNothing();
104   return 0;
105 }
106 catch ( const Exception & exp )
107 {
108   INT << exp << endl << exp.historyAsString();
109 }
110 catch (...)
111 {}
112