[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-pim
Subject:    [Kde-pim] Choosing between kontact and kmail
From:       David Faure <dfaure () klaralvdalens-datakonsult ! se>
Date:       2006-10-03 18:38:53
Message-ID: 200610032039.00377.dfaure () klaralvdalens-datakonsult ! se
[Download RAW message or body]

Given that kmail (in kde-3.5) or kontact (in proko2) is auto-started when
korganizer, kaddressbook, korgac, or knotes is started, (to provide the
calendar/contact/notes data), there needs to be a way for the user to
select whether kmail or kontact should be autostarted.

I have now implemented a shell-script which lets you choose between kmail
and kontact as the "imap resource backend". Simply run the attached script,
first without arguments to check your current setup, and then with either
kmail or kontact as argument.

-- 
David Faure, faure@kde.org, dfaure@klaralvdalens-datakonsult.se
KDE/KOffice developer, Qt consultancy projects
Klarälvdalens Datakonsult AB, Platform-independent software solutions

["select_imap_backend.sh" (application/x-shellscript)]

#!/bin/sh

#    Copyright (c) 2006 David Faure <faure@kde.org>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    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., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.


# Lets the user choose between kmail and kontact as the Kolab IMAP resource backend
# To be used with KDEPIM 3.5 or proko2.
#
# Simply run this script, first without arguments to check your current setup, 
# and then with either kmail or kontact as argument.

if ! kde-config ; then
  echo 'kde-config not found! Aborting. Please fix your $PATH [or install kde?].'
  exit 1
fi

if test $# -gt 1 -o "$1" = "--help"; then
  echo "Usage: $0 [kmail|kontact]"
  exit 2
fi

apps=`kde-config --path xdgdata-apps`

kmail=
kontact=
IFS=:
for dir in $apps; do
  dir=`echo $dir | sed -e 's,/$,,'`
  test -z "$kmail" -a -f "$dir/kde/KMail.desktop" && kmail="$dir/kde/KMail.desktop"
  test -z "$kontact" -a -f "$dir/kde/kontactdcop.desktop" && kontact="$dir/kde/kontactdcop.desktop"
done

if test -z "$kmail" -a -z "$kontact"; then
  echo "Neither KMail.desktop not kontactdcop.desktop was found! Please check $apps"
  exit 3
fi

kmail_is_backend=
kontact_is_backend=
if test -n "$kmail"; then
  kmail_is_backend=`grep DCOP/ResourceBackend/IMAP "$kmail"`
fi
if test -n "$kontact"; then
  kontact_is_backend=`grep DCOP/ResourceBackend/IMAP "$kontact"`
fi

if test -n "$kmail_is_backend" -a -n "$kontact_is_backend"; then
  echo "WARNING: both kmail and kontact are set as imap backends"
fi
if test -z "$kmail_is_backend" -a -z "$kontact_is_backend"; then
  echo "WARNING: neither kmail and kontact are set as imap backends"
fi
currentbackend=kmail
test -n "$kontact_is_backend" && currentbackend=kontact

echo "Current backend: $currentbackend"

test $# -eq 0 && exit 0

wanted="$1"
if test "$wanted" = "$currentbackend"; then
  echo "OK, nothing to do."
  exit 0
fi

if test "$wanted" = kmail; then

  if test -z "$kmail"; then
    echo "ERROR: KMail.desktop wasn't found"
    exit 4
  fi
  if test -n "$kontact"; then
    echo "Deleting $kontact..."
    rm -f "$kontact"
  fi
  echo "Adjusting $kmail..."
  if grep -q ^ServiceTypes "$kmail"; then
    echo "ERROR: $kmail has a ServiceTypes line already"
    exit 5
  fi
  echo 'ServiceTypes=DCOP/ResourceBackend/IMAP,DCOP/Mailer' >> "$kmail"
  echo "OK, kmail is set as the IMAP backend now."
  exit 0

elif test "$wanted" = kontact; then

  if test -n "$kontact"; then
    echo "ERROR: kontactdcop.desktop exists already"
    exit 6
  fi
  
  kontact=`echo $kmail | sed -e 's/KMail.desktop$/kontactdcop.desktop/'`
  echo "Creating $kontact..."
# Note that proko2 adds --nosplash to kontact, but it's not in 3.5 so I'm not using it here
  cat > "$kontact" <<EOF
[Desktop Entry]
Encoding=UTF-8
Name=Kontact
Exec=kontact --iconify
Type=Application
Icon=kontact
NoDisplay=true
X-DCOP-ServiceType=Unique
X-DCOP-ServiceName=kontact
ServiceTypes=DCOP/ResourceBackend/IMAP,DCOP/Mailer
X-KDE-StartupNotify=false
Categories=Qt;KDE;Office
EOF

  if test -n "$kmail"; then
    echo "Adjusting $kmail..."
    TMPFILE=`mktemp` || exit 7
    grep -v ^ServiceTypes "$kmail" > $TMPFILE
    mv -f $TMPFILE "$kmail"
  fi

  echo "OK, kontact is set as the IMAP backend now."

else

  echo "ERROR: you must select either kmail or kontact."
  exit 10

fi

# notreached
exit 42


_______________________________________________
kde-pim mailing list
kde-pim@kde.org
https://mail.kde.org/mailman/listinfo/kde-pim
kde-pim home page at http://pim.kde.org/

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic