#!/bin/bash
# -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
source "$(dirname "$0")/lib/ulib/ulib" || exit 1
urequire DEFAULTS

function display_help() {
    uecho "$scriptname: Enregistrer une url dans un fichier raccourci

USAGE
    $scriptname <url> [output]

OPTIONS
Par défaut, l'url est enregistrée dans un fichier homepage.url
Mais il est possible de spécifier un fichier avec l'extension .url pour un
raccourci utilisable aussi sous Windows, ou avec l'extension .desktop pour
compatibilité avec le standard XDG"
}

parse_opts "${PRETTYOPTS[@]}" \
    --help '$exit_with display_help' \
    @ args -- "$@" && set -- "${args[@]}" || die "$args"

function fix_urlfile() {
    local urlfile="$1"
    [ -d "$urlfile" ] && urlfile="$urlfile/homepage"
    if [ "${urlfile%.url}" != "$urlfile" -o "${urlfile%.desktop}" != "$urlfile" ]; then
        # le fichier a déjà l'extension. ne pas le modifier
        :
    else
        # par défaut, utiliser l'extenion .url
        urlfile="$urlfile.url"
    fi
    echo "$urlfile"
}

url="$1"
urlfile="${2:-homepage}"
urlname=

# trouver le fichier dans lequel enregistrer l'url
urlfile="$(fix_urlfile "$urlfile")"

# si possible récupérer l'ancienne valeur
if [ -z "$url" -a -f "$urlfile" ]; then
    url="$("$scriptdir/caturl" "$urlfile")" || die
fi

# lire les nouvelles valeurs
read_value ${1:+-i} "Entrez l'url" url "$url"
read_value ${1:+-i} "Entrez le nom du fichier de raccourci" urlfile "$urlfile"

# écrire l'url
urlfile="$(fix_urlfile "$urlfile")"
urlname="$(basename "$urlfile")"
urlname="${urlname%.*}"

if [ "${urlfile%.url}" != "$urlfile" ]; then
    echo "[InternetShortcut]
URL=$url" >"$urlfile"
elif [ "${urlfile%.desktop}" != "$urlfile" ]; then
    echo "#!/usr/bin/env xdg-open
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Link
Name=$urlname
URL=$url
Icon=applications-internet" >"$urlfile"
fi
