[type/__postgres_conf] Add psql_exec function to state explorer
This commit is contained in:
		
					parent
					
						
							
								0835f414a5
							
						
					
				
			
			
				commit
				
					
						92b8942a8c
					
				
			
		
					 1 changed files with 8 additions and 5 deletions
				
			
		| 
						 | 
					@ -20,21 +20,24 @@
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
 | 
					
 | 
				
			||||||
postgres_user=$("${__type_explorer:?}/postgres_user")
 | 
					postgres_user=$("${__type_explorer:?}/postgres_user")
 | 
				
			||||||
 | 
					 | 
				
			||||||
conf_name=${__object_id:?}
 | 
					conf_name=${__object_id:?}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
su - "${postgres_user}" -c 'psql postgres -c "SELECT 1"' >/dev/null || {
 | 
					quote() { printf '%s\n' "$*" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/'/"; }
 | 
				
			||||||
 | 
					psql_exec() {
 | 
				
			||||||
 | 
						su - "${postgres_user}" -c "psql postgres -twAc $(quote "$*")"
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					psql_exec 'SELECT 1' >/dev/null || {
 | 
				
			||||||
	echo 'Connection to PostgreSQL server failed' >&2
 | 
						echo 'Connection to PostgreSQL server failed' >&2
 | 
				
			||||||
	exit 1
 | 
						exit 1
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if su - "${postgres_user}" -c "psql postgres -twAc 'SHOW ${conf_name}'" \
 | 
					if psql_exec "SHOW ${conf_name}" | cmp -s "${__object:?}/parameter/value" -
 | 
				
			||||||
	| cmp -s "${__object:?}/parameter/value" -
 | 
					 | 
				
			||||||
then
 | 
					then
 | 
				
			||||||
	echo present
 | 
						echo present
 | 
				
			||||||
else
 | 
					else
 | 
				
			||||||
	# NOTE: SHOW/SET are case-insentitive, so this command should also be.
 | 
						# NOTE: SHOW/SET are case-insentitive, so this command should also be.
 | 
				
			||||||
	case $(su - "${postgres_user}" -c "psql postgres -tAwc \"SELECT CASE WHEN source = 'default' OR setting = boot_val THEN 'default' ELSE source END FROM pg_settings WHERE lower(name) = lower('${conf_name}')\"")
 | 
						case $(psql_exec "SELECT CASE WHEN source = 'default' OR setting = boot_val THEN 'default' ELSE source END FROM pg_settings WHERE lower(name) = lower('${conf_name}')")
 | 
				
			||||||
	in
 | 
						in
 | 
				
			||||||
		('')
 | 
							('')
 | 
				
			||||||
			# invalid configuration parameter
 | 
								# invalid configuration parameter
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue