summaryrefslogtreecommitdiffstats
path: root/kabc/kabc2mutt/main.cpp
blob: 4a406a3930473bde771c3c3bafb777c3a51c1ee0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*
    KAbc2Mutt

    Copyright (c) 2003 - 2004 Tobias Koenig <tokoe@kde.org>

    This program is free software; you can redistribute it and/or
    modify it under the terms of version 2 of the GNU General Public
    License as published by the Free Software Foundation.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/

#include <kapplication.h>
#include <kcmdlineargs.h>
#include <klocale.h>

#include <iostream>

#include "kabc2mutt.h"

static const char version[] = "0.2";
static const char appName[] = "kabc2mutt";
static const char programName[] = I18N_NOOP( "kabc2mutt" );
static const char description[] = I18N_NOOP( "kabc - mutt converter" );

static KCmdLineOptions k2moptions[] =
{
  { "query <substring>", I18N_NOOP( "Only show contacts where name or address matches <substring>" ), 0 },
  { "format <format>", I18N_NOOP( "Default format is 'alias'. 'query' returns email<tab>name<tab>, as needed by mutt's query_command" ), "alias" },
  { "alternate-key-format", I18N_NOOP( "Default key format is 'JohDoe', this option turns it into 'jdoe'" ), 0 },
  { "ignore-case", I18N_NOOP( "Make queries case insensitive" ), 0 },
  { "all-addresses", I18N_NOOP( "Return all mail addresses, not just the preferred one" ), 0},
  KCmdLineLastOption
};


int main( int argc, char **argv )
{
  KApplication::disableAutoDcopRegistration();
  TDECmdLineArgs::init( argc, argv, appName, programName, description, version );
  TDECmdLineArgs::addCmdLineOptions( k2moptions );

  KApplication app( false, false );

  TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();

  KABC2Mutt *object = new KABC2Mutt( 0 );

  // Handle --format option
  object->setFormat( (args->getOption("format") == "query") ? KABC2Mutt::Query : KABC2Mutt::Aliases );

  // Handle --alternate-key-format option
  object->setAlternateKeyFormat( args->isSet( "alternate-key-format" ) );

  // Handle --all-addresses option
  object->setAllAddresses( args->isSet( "all-addresses" ) );

  // Handle --query option
  const TQString subString = TQString::fromLocal8Bit( args->getOption( "query" ) );
  if ( !subString.isEmpty() ) {
    // Mutt wants a first line with some status message on it
    // See http://mutt.org/doc/manual/manual-4.html#ss4.5
    std::cout << i18n( "Searching KDE addressbook" ).latin1() << std::endl;
  }
  object->setQuery( subString );

  // Handle --ignore-case option
  object->setIgnoreCase( !args->isSet( "ignore-case" ) );

  object->run();

  return app.exec();
}