42 lines
		
	
	
		
			1020 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1020 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/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)"
 | |
| }
 |