kickoffcfg: new options --update-favorite and --autoupdate-favorites
This commit is contained in:
parent
80ece9b860
commit
c93c27328b
@ -4,19 +4,26 @@ if [ `id -u` -eq 0 ]; then
|
||||
else
|
||||
CONFDIR=~/.kde4/share/config
|
||||
fi
|
||||
XDG_APPS_DIR=/usr/share/applications
|
||||
FAVORITES=`/opt/kde/bin/kreadconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs 2>/dev/null`
|
||||
|
||||
[ "$1" -a "$2" ] || {
|
||||
function usage() {
|
||||
echo "KDE4 kickoff configuration tool"
|
||||
echo
|
||||
echo "Usage: kickoffcfg {--add-favorite|--del-favorite} /path/to/desktopfile.desktop"
|
||||
echo "Usage:"
|
||||
echo " kickoffcfg {--add-favorite|--del-favorite} /path/to/desktopfile.desktop"
|
||||
echo " kickoffcfg --update-favorite /path/to/old/desktopfile.desktop /path/to/new/desktopfile.desktop"
|
||||
echo " kickoffcfg --autoupdate-favorites"
|
||||
echo
|
||||
echo "Current favorites:"
|
||||
echo $FAVORITES
|
||||
exit 1
|
||||
}
|
||||
|
||||
[ "$1" ] || usage
|
||||
|
||||
if [ "$1" = "--add-favorite" ]; then
|
||||
[ "$2" ] || usage
|
||||
# ADD
|
||||
echo "$FAVORITES" | grep $2 >/dev/null || {
|
||||
if [ "$FAVORITES" ]; then
|
||||
@ -27,6 +34,7 @@ if [ "$1" = "--add-favorite" ]; then
|
||||
/opt/kde/bin/kwriteconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs $FAVORITES
|
||||
}
|
||||
elif [ "$1" = "--del-favorite" ]; then
|
||||
[ "$2" ] || usage
|
||||
# DELETE
|
||||
MODFAVORITES=`echo "$FAVORITES" | sed "s|$2||;s|^,||;s|,,|,|"`
|
||||
if [ ! "$MODFAVORITES" ]; then
|
||||
@ -34,8 +42,40 @@ elif [ "$1" = "--del-favorite" ]; then
|
||||
elif [ "$FAVORITES" != "$MODFAVORITES" ]; then
|
||||
/opt/kde/bin/kwriteconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs $MODFAVORITES
|
||||
fi
|
||||
elif [ "$1" = "--update-favorite" ]; then
|
||||
[ "$2" -a "$3" ] || usage
|
||||
# UPDATE
|
||||
MODFAVORITES=`echo "$FAVORITES" | sed "s|$2|$3|"`
|
||||
/opt/kde/bin/kwriteconfig --file $CONFDIR/kickoffrc --group Favorites --key FavoriteURLs $MODFAVORITES
|
||||
elif [ "$1" = "--autoupdate-favorites" ]; then
|
||||
SAVEIFS=$IFS
|
||||
IFS=","
|
||||
for f in $FAVORITES; do
|
||||
if [ "$f" = "$XDG_APPS_DIR/chromium-devel.desktop" ]; then
|
||||
kickoffcfg --update-favorite $f $XDG_APPS_DIR/chromium.desktop
|
||||
fi
|
||||
if [ ! -e "$f" ]; then
|
||||
DIRNAME=`dirname $f`
|
||||
BASENAME=`basename $f`
|
||||
BASENAME_LC=`echo $BASENAME | tr '[:upper:]' '[:lower:]'`
|
||||
if [ -e $XDG_APPS_DIR/$BASENAME ]; then
|
||||
echo "kickoffcfg: migrating $f to $XDG_APPS_DIR/$BASENAME"
|
||||
kickoffcfg --update-favorite $f $XDG_APPS_DIR/$BASENAME
|
||||
elif [ -e $XDG_APPS_DIR/org.kde.$BASENAME ]; then
|
||||
echo "kickoffcfg: migrating $f to $XDG_APPS_DIR/org.kde.$BASENAME"
|
||||
kickoffcfg --update-favorite $f $XDG_APPS_DIR/org.kde.$BASENAME
|
||||
elif [ -e $XDG_APPS_DIR/org.kde.$BASENAME_LC ]; then
|
||||
echo "kickoffcfg: migrating $f to $XDG_APPS_DIR/org.kde.$BASENAME_LC"
|
||||
kickoffcfg --update-favorite $f $XDG_APPS_DIR/org.kde.$BASENAME_LC
|
||||
else
|
||||
echo "WARNING: favorite link $f does not exist; ignoring."
|
||||
fi
|
||||
fi
|
||||
done
|
||||
IFS=$SAVEIFS
|
||||
else
|
||||
echo "Invalid option $1; aborting."
|
||||
exit 1
|
||||
echo
|
||||
usage
|
||||
fi
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user