#!/usr/bin/env zsh
use db/postgres
#####################################################################

MAIN() {
	echo.warning "---\nthis function is in a beta state\n---"

	local _PASS _ARGS=()
	POSTGRES__SET_LOGIN_ARGS "${@}"

	local input_file="${FILENAME}"

	local sql_path="${SCWRYPTS_DATA_PATH}/sql"
	mkdir -p -- "${sql_path}"

	cd -- "${sql_path}"

	[[ "$(find . -type f -name \*.sql 2>/dev/null | wc -l)" -eq 0 ]] && {
		echo.error "you haven't made any SQL commands yet"
		echo.reminder "add '.sql' files here: '${sql_path}/'"
		return 1
	}

	[[ "${input_file}" ]] || input_file="$(utils.fzf.file-select --prompt 'select a sql file to run' "${sql_path}")"
	[[ "${input_file}" ]] || echo.error.user-abort || return 2

	[[ -f "${input_file}" ]] \
		|| echo.error "no such sql file '${input_file}'" -v sql_path \
		|| return 2

	echo.status "loading '${input_file}' preview..."
	utils.less "${input_file}"

	echo.status "login   : ${_USER}@${_HOST}:${_PORT}/${_NAME}"
	echo.status "command : '${input_file}'"

	yN 'run this command?' || echo.error.user-abort || return 1

	echo.status "running '${input_file}'"

	PSQL < "${input_file}" \
		&& echo.success "finished running '${input_file}'" \
		|| echo.error   "something went wrong running '${input_file}' (see above)"
}
