#!/usr/bin/env bash

ENABLED=yes
[[ ${ENABLED} == "yes" ]] || exit 0

. /usr/lib/ublinux/default

SOURCE=${SYSCONF}/config; [[ -f ${SOURCE} ]] && . ${SOURCE} 2>/dev/null

add_bookmarks(){
    urlencode(){
	local LC_ALL=C
	local input_string="$1"
	local encoded_string=""
	local char
	for (( i = 0; i < ${#input_string}; i++ )); do
	    char="${input_string:i:1}"
	    case "${char}" in
    	    [a-zA-Z0-9/.~_-])
    		encoded_string+="${char}"
    	    ;;
    	    *)
    		printf -v hex_char '%%%02X' "'${char}"
    		encoded_string+="${hex_char}"
    	    ;;
	    esac
	done
	echo "${encoded_string}"
    }
    BOOKMARKS_PATH="${HOME}/.config/gtk-3.0/bookmarks"
    if [[ -f ${HOME}/.config/user-dirs.dirs ]]; then
	source "${HOME}/.config/user-dirs.dirs"
    else
	XDG_DESKTOP_DIR=$(xdg-user-dir DESKTOP 2>/dev/null)
	XDG_DOWNLOAD_DIR=$(xdg-user-dir DOWNLOAD 2>/dev/null)
	XDG_TEMPLATES_DIR=$(xdg-user-dir TEMPLATES 2>/dev/null)
	XDG_PUBLICSHARE_DIR=$(xdg-user-dir PUBLICSHARE 2>/dev/null)
	XDG_DOCUMENTS_DIR=$(xdg-user-dir DOCUMENTS 2>/dev/null)
	XDG_MUSIC_DIR=$(xdg-user-dir MUSIC 2>/dev/null)
	XDG_PICTURES_DIR=$(xdg-user-dir PICTURES 2>/dev/null)
	XDG_VIDEOS_DIR=$(xdg-user-dir VIDEOS 2>/dev/null)
    fi
    # Если не получены каталоги, то выйти
    if [[ -n ${XDG_DESKTOP_DIR} || -n ${XDG_DOWNLOAD_DIR} || -n ${XDG_TEMPLATES_DIR} || -n ${XDG_PUBLICSHARE_DIR} \
       || -n ${XDG_DOCUMENTS_DIR} || -n ${XDG_MUSIC_DIR} || -n ${XDG_PICTURES_DIR} || -n ${XDG_VIDEOS_DIR} ]]; then
	true
    else
	return 0
    fi
    [[ -e ${HOME}/.config/gtk-3.0/bookmarks ]] || touch ${BOOKMARKS_PATH}
    # Исключаем "${XDG_DESKTOP_DIR}" т.к. уже присутствует
    for SELECT_XDG_DIR in "${XDG_DOWNLOAD_DIR}" "${XDG_TEMPLATES_DIR}" "${XDG_PUBLICSHARE_DIR}" "${XDG_DOCUMENTS_DIR}" "${XDG_MUSIC_DIR}" "${XDG_PICTURES_DIR}" "${XDG_VIDEOS_DIR}"; do
	[[ ${SELECT_XDG_DIR} == ${HOME} ]] && continue
	URLENCODE_XDG_DIR="file://$(urlencode "${SELECT_XDG_DIR}")"
	grep -Eq "^${URLENCODE_XDG_DIR}$" ${BOOKMARKS_PATH} || echo "${URLENCODE_XDG_DIR}" >> ${BOOKMARKS_PATH}
    done
    
    # Создадим ссылку символическую на публичный общий каталог, для быстрого общего доступа
    [[ -d ${XDG_PUBLICSHARE_DIR} && -d /home/usershares && ! -L ${XDG_PUBLICSHARE_DIR}/usershares ]] && ln -s /home/usershares ${XDG_PUBLICSHARE_DIR}/usershares
    true
}

################
##### MAIN #####
################

    add_bookmarks
