47
48
//Needed for wince build
49
if ( QDBusConnection::sessionBus().interface()->isServiceRegistered( QLatin1String(AKONADI_DBUS_CONTROL_SERVICE) )
50
|| QDBusConnection::sessionBus().interface()->isServiceRegistered( QLatin1String(AKONADI_DBUS_SERVER_SERVICE) ) ) {
50
if ( QDBusConnection::sessionBus().interface()->isServiceRegistered( AkDBus::serviceName(AkDBus::Control) )
51
|| QDBusConnection::sessionBus().interface()->isServiceRegistered( AkDBus::serviceName(AkDBus::Server) ) ) {
51
52
qDebug() << "Akonadi is already running.";
58
59
static bool stopServer()
60
org::freedesktop::Akonadi::ControlManager iface( QLatin1String(AKONADI_DBUS_CONTROL_SERVICE),
61
org::freedesktop::Akonadi::ControlManager iface( AkDBus::serviceName(AkDBus::Control),
61
62
QLatin1String("/ControlManager"),
62
63
QDBusConnection::sessionBus(), 0 );
63
64
if ( !iface.isValid() ) {
73
74
static bool statusServer()
75
bool registered = QDBusConnection::sessionBus().interface()->isServiceRegistered( QLatin1String(AKONADI_DBUS_CONTROL_SERVICE) );
76
bool registered = QDBusConnection::sessionBus().interface()->isServiceRegistered( AkDBus::serviceName(AkDBus::Control) );
76
77
qDebug( "Akonadi Control: %s", registered ? "running" : "stopped" );
78
registered = QDBusConnection::sessionBus().interface()->isServiceRegistered( QLatin1String(AKONADI_DBUS_SERVER_SERVICE) );
79
registered = QDBusConnection::sessionBus().interface()->isServiceRegistered( AkDBus::serviceName(AkDBus::Server) );
79
80
qDebug( "Akonadi Server: %s", registered ? "running" : "stopped" );
81
82
registered = QDBusConnection::sessionBus().interface()->isServiceRegistered( QLatin1String("org.kde.nepomuk.services.nepomukqueryservice") );
107
108
int main( int argc, char **argv )
109
AkApplication app( argc, argv );
110
AkCoreApplication app( argc, argv );
110
111
app.setDescription( QLatin1String("Akonadi server manipulation tool\n"
111
112
"Usage: akonadictl [command]\n\n"
113
114
" start : Starts the Akonadi server with all its processes\n"
114
115
" stop : Stops the Akonadi server and all its processes cleanly\n"
115
116
" restart : Restart Akonadi server with all its processes\n"
116
" status : Shows a status overview of the Akonadi server"
117
" status : Shows a status overview of the Akonadi server\n"
118
" vacuum : Vacuum internal storage (WARNING: needs a lot of time and disk space!)\n"
119
" fsck : Check (and attempt to fix) consistency of the internal storage (can take some time)"
119
122
app.parseCommandLine();
124
QStringList optionsList;
122
125
optionsList.append( QLatin1String( "start" ) );
123
126
optionsList.append( QLatin1String( "stop" ) );
124
127
optionsList.append( QLatin1String( "status" ) );
125
128
optionsList.append( QLatin1String( "restart" ) );
129
optionsList.append( QLatin1String( "vacuum" ) );
130
optionsList.append( QLatin1String( "fsck" ) );
132
QStringList arguments = QCoreApplication::instance()->arguments();
127
133
#ifndef _WIN32_WCE
128
const QStringList arguments = app.arguments();
134
if ( AkApplication::hasInstanceIdentifier() ) { // HACK: we should port all of this to boost::program_options...
135
arguments.removeFirst();
136
arguments.removeFirst();
129
138
if ( arguments.count() != 2 ) {
130
139
app.printUsage();
180
} while( QDBusConnection::sessionBus().interface()->isServiceRegistered( QLatin1String(AKONADI_DBUS_CONTROL_SERVICE) ) );
188
} while( QDBusConnection::sessionBus().interface()->isServiceRegistered( AkDBus::serviceName(AkDBus::Control) ) );
181
189
if ( !startServer() )
192
} else if ( arguments[ 1 ] == QLatin1String( "vacuum" ) ) {
193
QDBusInterface iface( AkDBus::serviceName(AkDBus::StorageJanitor), QLatin1String(AKONADI_DBUS_STORAGEJANITOR_PATH) );
194
iface.call( QDBus::NoBlock, QLatin1String( "vacuum" ) );
195
} else if ( arguments[ 1 ] == QLatin1String( "fsck" ) ) {
196
QDBusInterface iface( AkDBus::serviceName(AkDBus::StorageJanitor), QLatin1String(AKONADI_DBUS_STORAGEJANITOR_PATH) );
197
iface.call( QDBus::NoBlock, QLatin1String( "check" ) );