#!/usr/bin/env zsh

normalize_boolean() {
	local value="$1" default="$2"

	if [[ -z $value ]]; then
		echo "$default"
		return
	fi

	# check for straight number
	if [[ $value =~ "^[[:digit:]]+$" ]]; then
		echo $value
		return
	fi

	# use this instead of -pcre-match for shfmt compatibility
	pcre_compile -i "^(y(es)?|t(rue)?)$"
	if pcre_match "$value"; then
		echo 1
		return
	fi

	pcre_compile -i "^(no?|f(alse)?)$"
	if pcre_match "$value"; then
		echo 0
		return
	fi

	_zsl_msg -warn "invalid boolean $value"
	return 1
}
