123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- #!/usr/bin/env bash
- PERL_SCRIPT="claws-mail-kdeservicemenu.pl"
- DESKTOP="claws-mail-attach-files.desktop"
- function check_environ {
- echo "Checking for kde4-config..."
- if [ ! -z "$(type 'kde4-config' 2> /dev/null)" ]; then
- echo "Found kde4-config..."
- SERVICEMENU_DIR="share/kde4/services/ServiceMenus"
- DESKTOP_TEMPLATE="claws-mail-attach-files.desktop.kde4template"
- KDECONFIG="kde4-config"
- else
- echo "kde4-config not found..."
- echo "Checking for kde-config..."
- if [ ! -z "$(type 'kde-config' 2> /dev/null)" ]; then
- echo "Found kde-config..."
- SERVICEMENU_DIR="share/apps/konqueror/servicemenus"
- DESKTOP_TEMPLATE="claws-mail-attach-files.desktop.template"
- KDECONFIG="kde-config"
- else
- echo "kde-config not found..."
- echo "asking user to find kde4-config or kde-config..."
- KDECONFIG=$(kdialog --title "Locate kde-config or kde4-config" --getopenfilename / )
- test -z $KDECONFIG && exit 1
- if [[ $KDECONFIG == *4-config ]]; then
- SERVICEMENU_DIR="share/kde4/services/ServiceMenus"
- DESKTOP_TEMPLATE="claws-mail-attach-files.desktop.kde4template"
- else
- SERVICEMENU_DIR="share/apps/konqueror/servicemenus"
- DESKTOP_TEMPLATE="claws-mail-attach-files.desktop.template"
- fi
- fi
- fi
- }
- function install_all {
- echo "Generating $DESKTOP ..."
- SED_PREFIX=${PREFIX//\//\\\/}
- sed "s/SCRIPT_PATH/$SED_PREFIX\\/bin\\/$PERL_SCRIPT/" $DESKTOP_TEMPLATE > $DESKTOP
- echo "Installing $PREFIX/$SERVICEMENU_DIR/$DESKTOP"
- mv -f $DESKTOP $PREFIX/$SERVICEMENU_DIR/$DESKTOP
- if [[ $? -ne 0 ]]
- then
- kdialog --error "Could not complete installation."
- exit
- fi
- echo "Installing $PREFIX/bin/$PERL_SCRIPT"
- cp -f $PERL_SCRIPT $PREFIX/bin/
- echo "Setting permissions ..."
- chmod 0644 $PREFIX/$SERVICEMENU_DIR/$DESKTOP
- chmod 0755 $PREFIX/bin/$PERL_SCRIPT
- echo "Finished installation."
- kdialog --msgbox "Finished installation."
- }
- function uninstall_all {
- echo "Removing $PREFIX/$SERVICEMENU_DIR/$DESKTOP"
- rm $PREFIX/$SERVICEMENU_DIR/$DESKTOP
- if [[ $? -ne 0 ]]
- then
- kdialog --error "Could not complete uninstall."
- exit
- fi
- echo "Removing $PREFIX/bin/$PERL_SCRIPT"
- rm $PREFIX/bin/$PERL_SCRIPT
- echo "Finished uninstall."
- kdialog --msgbox "Finished uninstall."
- }
- function show_help {
- echo "Usage: $0 [--global|--local|--uninstall-global|--uninstall-local]"
- echo
- echo " --global attempts a system-wide installation."
- echo " --local attempts to install in your home directory."
- echo " --uninstall-global attempts a system-wide uninstallation."
- echo " --uninstall-local attempts to uninstall in your home directory."
- echo
- exit 0
- }
- if [ -z $1 ]
- then option="--$(kdialog --menu "Please select installation type" \
- local "install for you only" \
- global "install for all users" \
- uninstall-local "uninstall for you only" \
- uninstall-global "uninstall for all users" 2> /dev/null)"
- else option=$1
- fi
- case $option in
- "--global" )
- check_environ
- PREFIX=$($KDECONFIG --prefix)
- echo "Installing in $PREFIX/$SERVICEMENU_DIR ..."
- if [ "$(id -u)" != "0" ]; then
- exec kdesu "$0 --global"
- fi
- install_all
- ;;
- "--local" )
- check_environ
- PREFIX=$($KDECONFIG --localprefix)
- echo "Installing in $PREFIX$SERVICEMENU_DIR ..."
- if [ ! -d $PREFIX/bin ]; then
- mkdir $PREFIX/bin
- fi
- if [ ! -d $PREFIX/$SERVICEMENU_DIR ]; then
- mkdir $PREFIX/$SERVICEMENU_DIR
- fi
- install_all
- ;;
- "--uninstall-global" )
- check_environ
- PREFIX=$($KDECONFIG --prefix)
- echo "Uninstalling from $PREFIX/$SERVICEMENU_DIR ..."
- if [ "$(id -u)" != "0" ]; then
- exec kdesu "$0 --uninstall-global"
- fi
- uninstall_all
- ;;
- "--uninstall-local" )
- check_environ
- PREFIX=$($KDECONFIG --localprefix)
- echo "Uninstalling from $PREFIX$SERVICEMENU_DIR ..."
- uninstall_all
- ;;
- "-h" )
- show_help
- ;;
- "--help" )
- show_help
- ;;
- * )
- show_help
- esac
- echo "Done."
|