#!/bin/env fish
function confirm -a message default
    set -l options (echo "[y/n]" | string replace $default (string upper $default))

    while true
        read -l value -P "$message $options "
        or exit 1
        set value (string lower "$value")

        if [ -z "$value" ]
            set value $default
        end

        if contains "$value" "0" "false" "n" "no"
            false
            return
        end

        if contains "$value" "1" "true" "y" "yes"
            true
            return
        end

        echo "The specified value `$value` is invalid!"
        echo "Please try again"
    end
end

confirm $argv