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

MAIN() {
	WARNING " \nthis function is in a beta state\n "
	local _PASS _ARGS=()
	POSTGRES__SET_LOGIN_ARGS $@

	local INPUT_FILE="$FILENAME"

	local SQL_DIR="$SCWRYPTS_DATA_PATH/sql"
	[ ! -d $SQL_DIR ] && mkdir -p $SQL_DIR

	cd $SQL_DIR

	[[ $(ls "*.sql" 2>&1 | wc -l) -eq 0 ]] && {
		ERROR "you haven't made any SQL commands yet"
		REMINDER "add '.sql' files here: '$SQL_DIR/'"
		return 1
	}

	[ ! $INPUT_FILE ] && INPUT_FILE=$(FZF 'select a sql file to run')
	[ ! $INPUT_FILE ] && ABORT

	[ ! -f "$INPUT_FILE" ] && FAIL 2 "no such sql file '$SQL_DIR/$INPUT_FILE'"

	STATUS "loading '$INPUT_FILE' preview..."
	LESS "$INPUT_FILE"

	STATUS "login   : $_USER@$_HOST:$_PORT/$_NAME"
	STATUS "command : '$INPUT_FILE'"

	yN 'run this command?' || ABORT

	STATUS "running '$INPUT_FILE'"

	PSQL < $INPUT_FILE \
		&& SUCCESS "finished running '$INPUT_FILE'" \
		|| FAIL 3 "something went wrong running '$INPUT_FILE' (see above)"
}