#!/bin/bash

param="$@"
single=false
[[ $param =~ -[acr]$ ]] && param="$param "
[ "$1" = "-r" ] && repeat=true && param="${param/-r /}" || repeat=false
[ "$1" = "-c" ] && choice=true && param="${param/-c /}" || choice=false
[ "$1" = "-a" ] && root=true && param="${param/-a /}" || root=false
[ -e "$param" ] && single=true
[ $(echo "$DISPLAY" | cut -d: -f2 | cut -d. -f1) -eq 0 ] && resize=1 || resize=0
HOME="/$(whoami)"
[ "$HOME" != '/root' ] && HOME="/home$HOME"

env="$(echo $(ps e -p $$) | sed -E 's@.*(GTK2_RC_FILES[^ ]*).*@\1@')"
if [ "${env::13}" = "GTK2_RC_FILES" ]; then
    gtk_theme="$(echo "$env" | cut -d/ -f5)"
else
    env=""
    gtk_theme="$(grep "gtk-theme-name" $HOME/.gtkrc-2.0 | cut -d= -f2 | cut -d\" -f2)"
fi
[[ $gtk_theme =~ [Dd]ark$|[bB]lack$ ]] && dark=true || dark=false
! $dark && [ -e "/usr/share/themes/$gtk_theme/index.theme" ] && [ -n "$(grep -E .*[dD]ark$\|.*[bB]lack /usr/share/themes/$gtk_theme/index.theme | grep -v "Cursor")" ] && dark=true
$dark && suffix="dark" || suffix="light"
darklight="darklight"

. $HOME/.config/rox.sourceforge.net/ROX-Filer/colours-$suffix
dclick=$resize
size=$((14-3*resize))

if ! $repeat; then

    if $choice && [ "$USER" != "root" ]; then
	wunwa "Event Tester" && wmctrl -r 'Event Tester' -N "Root: $(gettext "Super_L key")" &
	kp=$(timeout 2s xev -geometry 260x50 | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p')
	sl="Super_L"
    else
	kp=""; sl="unset"
    fi

    if $root || [[ "${kp}" =~ "$sl" ]]; then
	[ -z "$param" ] && param="/" # param="\$HOME"
	gsu $env $0 -r $param &
	exit 0
    else
	if [ -z "$param" ]; then param="$HOME"; fi
#	$single && $0 -r "$param" || $0 -r $param
	eval "$env $0 -r $param" &
	exit 0
    fi
else
    rox="$HOME/.config/rox.sourceforge.net"
    sendto="$rox/SendTo"
    dirs=($(find $sendto -maxdepth 1 -type d -name ".?*"))
    mv_trash=$(basename $(find $sendto/.text_plain -type f -name "_ *"))

    [ ! -f "$sendto/$mv_trash" ] && cp $sendto/.text_plain/$mv_trash $sendto
    for d in ${dirs[@]}; do
	if [ ! -f "$d/$mv_trash" ]; then
	    cp -r $sendto/.text_plain/$mv_trash $d
	    db=$(basename $d); db=${db: 1}
	    cp -r "$rox/Templates/MIME-type" "$rox/MIME-types/$db"
	fi
    done

    [ "$(whoami)" = "root" ] && HOME="/root" || HOME=/home/$(whoami)
    sed -i "s/<Option name=\"filer_auto_resize\">.<\/Option>/<Option name=\"filer_auto_resize\">$resize<\/Option>/g; s/<Option name=\"bind_dclick_resizes\">.<\/Option>/<Option name=\"bind_dclick_resizes\">$dclick<\/Option>/g" $HOME/.config/rox.sourceforge.net/ROX-Filer/Options
    [ "$(cat $HOME/.config/openbox/environment | grep gtk2_colour | cut -d= -f2)" != "$suffix" ] && change=true && sed -Ei "s/(gtk2_colour=).*/\1$suffix/" $HOME/.config/openbox/environment || change=false
    $change && sed -i -E "s/(\"display_unkn_colour\">#).*</\1$unkn</; s/(\"display_bdev_colour\">#).*</\1$bdev</; s/(\"display_exec_colour\">#).*</\1$exec</; s/(\"display_file_colour\">#).*</\1$file</; s/(\"display_dir_colour\">#).*</\1$dir</; s/(\"display_adir_colour\">#).*</\1$adir</; s/(\"display_cdev_colour\">#).*</\1$cdev</; s/(\"display_pipe_colour\">#).*</\1$pipe</; s/(\"display_door_colour\">#).*</\1$door</; s/(\"display_sock_colour\">#).*</\1$sock</; s/(\"display_err_colour\">#).*</\1$err</" $HOME/.config/rox.sourceforge.net/ROX-Filer/Options
    sed -i "s/Sans ../Sans $size/" $HOME/.gtkrc-2.0
    cp $HOME/.config/rox.sourceforge.net/ROX-Filer/menus2-$LANGUAGE $HOME/.config/rox.sourceforge.net/ROX-Filer/menus2
#    $change && killall rox && rox -n --pinboard=starbuntu &
    $single && ROX-Filer -n "$param" || ROX-Filer -n $param
    bookmarks --gtk
    if [ "$(cat $HOME/.config/openbox/environment | grep gtk2_colour | cut -d= -f2)" = "$suffix" ]; then
	grep "display_.*_colour" $HOME/.config/rox.sourceforge.net/ROX-Filer/Options | sed -E 's/.*_(.*)_.*#(.*)<.*/\1=\2/' > $HOME/.config/rox.sourceforge.net/ROX-Filer/colours-$suffix
    fi
fi

exit 0

