#!/bin/bash

is_running()
{
    ps x | awk '{print $5}' | grep -q $1\$ 2>/dev/null
    return $?
}

gimp ()
{
    if [ $# -gt 0 ]; then
        exec gimp-remote -n "$@"
    else
        is_running gimp || exec gimp && exit 0
    fi
}

case "$1" in
    --gqview) shift; exec gqview "$@"
        ;;
    --xv) shift; exec xv -vsmap -2x "$@"
        ;;
    --gimp) shift; gimp "$@"
        ;;
esac

if [ -n "$1" ]; then
    if [ $# -gt 1 ]; then
        exec gqview "$@"
    else
        if [ -d "$1" ]; then
            cd "$1"
            shift
        else
	    cd "$(dirname "$1")"
        fi
        case "$1" in
            *.xcf|*.xcf.gz|*.xcf.bz2) gimp "$1" ;;
            *.ico) gimp "$1" ;;
            *.png) exec gqview "$1" ;;
            *.tif|*.tiff) gimp "$1" ;;
            *) exec xv "$1" ;;
        esac
    fi
else
    exec gqview
fi
