Skip to content

Commit

Permalink
Fix database check and creation (#23)
Browse files Browse the repository at this point in the history
* Refactor db check and create

* Make exit more accurate
  • Loading branch information
lildude authored Jul 18, 2024
1 parent 213a220 commit 64f0213
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 19 deletions.
13 changes: 9 additions & 4 deletions services/nginx/finish
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,13 @@
# -*- bash -*-
# shellcheck shell=bash
if [[ "${1}" -ne 0 ]] && [[ "${1}" -ne 256 ]]; then
bashio::log.warning "Nginx crashed, halting add-on"
case "${1}" in
1)
bashio::log.error "Nginx encountered an error, halting add-on"
;;
*)
bashio::log.error "Nginx crashed, halting add-on"
;;
esac
/run/s6/basedir/bin/halt
fi

bashio::log.info "Nginx stopped, restarting..."
fi
10 changes: 8 additions & 2 deletions services/teslamate/finish
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,14 @@
# -*- bash -*-
# shellcheck shell=bash
if [[ "${1}" -ne 0 ]] && [[ "${1}" -ne 256 ]]; then
bashio::log.warning "TeslaMate crashed, halting add-on"
case "${1}" in
1)
bashio::log.error "TeslaMate encountered an error, halting add-on"
;;
*)
bashio::log.error "TeslaMate crashed, halting add-on"
;;
esac
/run/s6/basedir/bin/halt
fi

bashio::log.info "TeslaMate stopped, restarting..."
23 changes: 10 additions & 13 deletions services/teslamate/run
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,20 @@ fi

# Create the PostgreSQL database if it doesn't exist
if pg_isready -h "$DATABASE_HOST" -p "$DATABASE_PORT" > /dev/null 2>&1; then
bashio::log.info "Creating database $DATABASE_NAME on $DATABASE_HOST"
bashio::log.info "Creating database '$DATABASE_NAME' on $DATABASE_HOST"

res=$(PGPASSWORD="$DATABASE_PASS" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" postgres -c "CREATE DATABASE $DATABASE_NAME" 2>&1) || true
case "$res" in
"CREATE DATABASE")
if [[ -n $(PGPASSWORD="$DATABASE_PASS" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" postgres -Atqc "\list $DATABASE_NAME") ]]; then
bashio::log.info "Database $DATABASE_NAME already exists"
else
if PGPASSWORD="$DATABASE_PASS" psql -h "$DATABASE_HOST" -p "$DATABASE_PORT" -U "$DATABASE_USER" postgres -qc "CREATE DATABASE \"$DATABASE_NAME\""; then
bashio::log.info "Database $DATABASE_NAME created"
;;
*"already exists"*)
bashio::log.info "Database $DATABASE_NAME already exists"
;;
*)
bashio::log.error "Failed to create database $DATABASE_NAME: $res"
else
bashio::log.error "Failed to create database $DATABASE_NAME"
exit 1
;;
esac
fi
fi
else
bashio::log.error "PostgreSQL is not ready"
bashio::log.error "PostgreSQL at '$DATABASE_HOST' is not ready or unreachable"
exit 1
fi

Expand Down

0 comments on commit 64f0213

Please sign in to comment.