# shellcheck shell=dash

___x_cmd_ondb_unlink(){
    local from="" rel="" to="" file="" dir=""

    while [ $# -gt 0 ]; do
        case "$1" in
            -h|--help)  ___x_cmd help -m ondb unlink "$@" ; return 0 ;;
            --from)     from="$2"; arg:2:shift ;;
            --rel)      rel="$2"; arg:2:shift ;;
            --to)       to="$2"; arg:2:shift ;;
            --datadir|-d)   dir="$2"; arg:2:shift ;;
            --)         shift; break ;;
            *)          break ;;
        esac
    done

    [ -n "$from" ] || { N=ondb M="--from is required" log:ret:64; return; }
    [ -n "$rel" ]  || { N=ondb M="--rel is required" log:ret:64; return; }
    [ -n "$to" ]   || { N=ondb M="--to is required" log:ret:64; return; }

    if [ -n "$dir" ]; then
        ___x_cmd_ondb_logpath_write "$dir"
        file="$x_"
    else
        file="ondb.tsv"
    fi

    local ms; ms="$( x epoch ms )"

    printf 'unlink\t%s\t%s\t%s\t%s\n' "$from" "$rel" "$to" "$ms" >> "$file"
    printf "unlinked\t%s --%s--> %s\n" "$from" "$rel" "$to"
}
