{ pkgs, ... }:
pkgs.writeTextFile {
  name = "rbw-helper";
  text = ''
    declare -A params

    if [ "x$1" == "xget" ]; then
        read line
        while [ -n "$line" ]; do
            key=$\{line%%=*}
            value=$\{line#*=}
            params[$key]=$value
            read line
        done

        if [ "x$\{params['protocol']}" != "xhttps" ]; then
            exit
        fi

        if [ -z "$\{params["host"]}" ]; then
            exit
        fi

        rbw ls > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            echo "Please login to rbw to use git credential helper" > /dev/stderr
            exit
        fi

        user=`rbw get --folder Git --full $\{params["host"]} | grep "Username:" | cut -d' ' -f2-`
        pass=`rbw get --folder Git $\{params["host"]}`

        if [ "x$user" == "x" ] || [ "x$pass" == "x" ]; then
            echo "Couldn't find host in rbw DB." > /dev/stderr
            exit
        fi

        echo username=$user
        echo password=$pass
    fi
  '';
  executable = true;
  destination = "/bin/git-credential-rbw";
}
