#!/bin/bash
#
# (c) 2014 Timothy Pearson
# All Rights Reserved
#
# WARNING
# This script is not complete!
# Hand editing will likely be required after running to ensure all icon names have been updated
# See http://trinity.etherpad.trinitydesktop.org/60 for a mapping of old KDE3 names to modern XDG names

WORKDIR=$PWD

function rename_files {
	echo '#!/bin/bash' > /tmp/rename_action_files
	echo '' >> /tmp/rename_action_files
	echo 'cd $1' >> /tmp/rename_action_files
	echo '' >> /tmp/rename_action_files
	echo 'BASEDIR=${PWD##*/}' >> /tmp/rename_action_files
	echo "ORIGNAME='$1'" >> /tmp/rename_action_files
	echo "NEWNAME='$2'" >> /tmp/rename_action_files
	echo '' >> /tmp/rename_action_files
	echo 'if [[ "$BASEDIR" == ".git" ]]; then' >> /tmp/rename_action_files
	echo '        echo "Ignoring .git directory"' >> /tmp/rename_action_files
	echo '        exit 0' >> /tmp/rename_action_files
	echo 'fi' >> /tmp/rename_action_files
	echo '' >> /tmp/rename_action_files
	echo 'ls -d * | sed "s/\(.*\)action-$ORIGNAME\.png\(.*\)$/git mv \"&\" \"\1action-$NEWNAME\.png\2\"/" | grep mv | sh' >> /tmp/rename_action_files
	echo 'ls -d * | sed "s/$ORIGNAME\.png\(.*\)$/git mv \"&\" \"$NEWNAME\.png\1\"/" | grep mv | sh' >> /tmp/rename_action_files
	chmod 755 /tmp/rename_action_files

	find ./ -type d -exec /tmp/rename_action_files {} \; &> /dev/null

	rm /tmp/rename_action_files
}

function convert_files {
	cd ~/tde-git/tde/main

	echo "==================================================="
	echo "Converting $1..."

	find ./ -type f -iname "*.c*" -not -iwholename '*.git*' -exec sed -i "s/IconSet(\"$1\"/IconSet(\"$2\"/g" {} \;
	find ./ -type f -iname "*.c*" -not -iwholename '*.git*' -exec sed -i "s/IconSet( \"$1\"/IconSet( \"$2\"/g" {} \;

	find ./ -type f -iname "*.c*" -not -iwholename '*.git*' -exec sed -i "s/Icon(\"$1\"/Icon(\"$2\"/g" {} \;
	find ./ -type f -iname "*.c*" -not -iwholename '*.git*' -exec sed -i "s/Icon( \"$1\"/Icon( \"$2\"/g" {} \;

	find ./ -type f -iname "*.ui*" -not -iwholename '*.git*' -exec sed -i "s/<iconset>\"$1\"/<iconset>\"$2\"/g" {} \;

	find ./ -type f -iname "*.directory" -not -iwholename '*.git*' -exec sed -i "s/Icon=$1/Icon=$2/g" {} \;
	find ./ -type f -iname "*.desktop" -not -iwholename '*.git*' -exec sed -i "s/Icon=$1/Icon=$2/g" {} \;
	find ./ -type f -iname "*.protocol" -not -iwholename '*.git*' -exec sed -i "s/Icon=$1/Icon=$2/g" {} \;

	find ./ -type f -iname "*.rc" -not -iwholename '*.git*' -exec sed -i "s/icon=\"$1\"/icon=\"$2\"/g" {} \;

	echo "==================================================="
	echo "Renaming $1..."
	cd $WORKDIR/tdelibs/pics
	rename_files $1 $2
	cd $WORKDIR/tdeartwork/IconThemes
	rename_files $1 $2
	cd $WORKDIR/tdeaccessibility/IconThemes
	rename_files $1 $2
	cd $WORKDIR
	echo "==================================================="

	echo "Still found in files:"
	echo "==================================================="
	find . -not -iwholename '*.git*' | xargs grep "\"$1\"" -sl
	echo "==================================================="
	echo ""
}

convert_files "previous" "go-previous"
convert_files "next" "go-next"
convert_files "start" "go-first"
convert_files "finish" "go-last"
convert_files "stop" "process-stop"
convert_files "lock" "system-lock-screen"
convert_files "exit" "system-log-out"
convert_files "run" "system-run"
convert_files "up" "go-up"
convert_files "down" "go-down"
convert_files "top" "go-top"
convert_files "bottom" "go-bottom"
convert_files "undo" "edit-undo"
convert_files "redo" "edit-redo"
convert_files "find" "edit-find"
convert_files "revert" "document-revert"
convert_files "filenew" "document-new"
convert_files "fileopen" "document-open"
convert_files "fileprint" "document-print"
convert_files "filequickprint" "document-print-preview"
convert_files "filesave" "document-save"
convert_files "filesaveas" "document-save-as"
convert_files "fileclose" "window-close"
convert_files "editclear" "edit-clear"
convert_files "editcopy" "edit-copy"
convert_files "editcut" "edit-cut"
convert_files "editdelete" "edit-delete"
convert_files "editpaste" "edit-paste"
convert_files "folder_new" "folder-new"
convert_files "gohome" "go-home"
convert_files "mail_forward" "mail-forward"
convert_files "mail_new" "mail-message-new"
convert_files "mail_replyall" "mail-reply-all"
convert_files "mail_reply" "mail-reply-sender"
convert_files "mail_send" "mail-send"
convert_files "player_pause" "media-playback-pause"
convert_files "player_play" "media-playback-start"
convert_files "player_stop" "media-playback-stop"
convert_files "player_rew" "media-seek-backward"
convert_files "player_fwd" "media-seek-forward"
convert_files "player_start" "media-skip-backward"
convert_files "player_end" "media-skip-forward"
convert_files "rotate_ccw" "object-rotate-left"
convert_files "rotate_cw" "object-rotate-right"
convert_files "window_fullscreen" "view-fullscreen"
convert_files "window_nofullscreen" "view-restore"
convert_files "window_new" "window-new"
convert_files "viewmagfit" "zoom-fit-best"
convert_files "viewmag+" "zoom-in"
convert_files "viewmag1" "zoom-original"
convert_files "viewmag-" "zoom-out"
convert_files "unindent" "format-indent-less"
convert_files "indent" "format-indent-more"
convert_files "centrejust" "format-justify-center"
convert_files "leftjust" "format-justify-left"
convert_files "rightjust" "format-justify-right"
convert_files "text_left" "format-text-direction-ltr"
convert_files "text_right" "format-text-direction-rtl"
convert_files "text_bold" "format-text-bold"
convert_files "text_italic" "format-text-italic"
convert_files "text_under" "format-text-underline"
convert_files "text_strike" "format-text-strikethrough"
convert_files "spellcheck" "tools-check-spelling"
convert_files "package_development" "applications-development"
convert_files "package_games" "applications-games"
convert_files "package_graphics" "applications-graphics"
convert_files "package_network" "applications-internet"
convert_files "package_multimedia" "applications-multimedia"
convert_files "package_wordprocessing" "applications-office"
convert_files "edu_science" "applications-science"
convert_files "package_utilities" "applications-utilities"
convert_files "input_devices_settings" "preferences-desktop-peripherals"
convert_files "kcmsystem" "preferences-system"
convert_files "personal" "preferences-desktop-personal"
convert_files "looknfeel" "preferences-desktop"
convert_files "package_development" "applications-development"
convert_files "package_games" "applications-games"
convert_files "package_graphics" "applications-graphics"
convert_files "package_network" "applications-internet"
convert_files "package_multimedia" "applications-multimedia"
convert_files "package_wordprocessing" "applications-office"
convert_files "edu_science" "applications-science"
convert_files "package_utilities" "applications-utilities"
convert_files "looknfeel" "preferences-desktop"
convert_files "input_devices_settings" "preferences-desktop-peripherals"
convert_files "personal" "preferences-desktop-personal"
convert_files "kcmsystem" "preferences-system"
