#!/usr/bin/env bash

# kbs2-yad-login: Add a login record to kbs2 via a YAD form.

set -eo pipefail

[[ -n "${KBS2_SUBCOMMAND}" ]] \
  || { >&2 echo "Fatal: Not being run as a subcommand?"; exit 1; }

default_username=$(kbs2 config dump | jq --raw-output '.commands.new."default-username"')

record=$(
  yad \
    --form \
    --separator=$'\x01' \
    --item-separator=$'\x01' \
    --text-align=left \
    --text="New Login" \
    --title="kbs2" \
    --field="Label" \
    --field="Username" \
    --field="Password:H" \
    --field="Overwrite?:CHK" \
    "" \
    "${default_username}" \
    "$(kbs2 generate)" \
    "FALSE"
)

label=$(awk -F $'\x01' '{ print $1 }' <<< "${record}")
username=$(awk -F $'\x01' '{ print $2 }' <<< "${record}")
password=$(awk -F $'\x01' '{ print $3 }' <<< "${record}")
force=$(awk -F $'\x01' '{ print $4 }' <<< "${record}")

if [[ "${force}" == "TRUE" ]]; then
  force_arg="--force"
fi

# NOTE: Intentional lack of quoting around `force_arg`, to allow empty expansion.
kbs2 new ${force_arg} "${label}" <<< "${username}"$'\x01'"${password}"
