_tizen()
{
    CLI_PATH=$(eval eval echo \$\{COMP_WORDS\[0\]\})
    IS_CLI_IN_PATH=`which tizen`
    if [ ! -f ${CLI_PATH} ] && [ -z ${IS_CLI_IN_PATH} ];
    then
        return 0;
    fi

    if [ -z ${IS_CLI_IN_PATH} ];
    then
        HOME_PATH=$(eval eval dirname \$\{CLI_PATH\})
    else
        HOME_PATH=$(eval eval dirname \$\{IS_CLI_IN_PATH\})
    fi
    LIB_PATH=${HOME_PATH}/../lib-ncli
    CONFIG_PATH=${HOME_PATH}/../conf-ncli

    local cur prev args path next
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    CLASSPATH=""
    ARGS=""

    for ((i=0; i < ${COMP_CWORD} ; i++))
    do
        ARGS="${ARGS} ${COMP_WORDS[i]}"
    done    
    
    LIBS=`find "${LIB_PATH}" -maxdepth 1`
    LIB=""
    for LIB in $LIBS; do
        CLASSPATH=$CLASSPATH:$LIB
    done

    CLASSPATH="${CONFIG_PATH}":$CLASSPATH
    
    MAIN=org.tizen.ncli.ide.autocomplete.TizenAutoComplete
    
    next=$(java -Djava.library.path="${LIB_PATH}"/spawner -cp $CLASSPATH $MAIN $ARGS)
    COMPREPLY=($(compgen -W "${next}" -- ${cur}))

    return 0
}

complete -o bashdefault -o default -o nospace -F _tizen tizen 2>/dev/null \
	|| complete -o default -o nospace -F _tizen tizen
