From ea9acaaded12cbd99a7a79218f2df84e7ef8ebb9 Mon Sep 17 00:00:00 2001 From: tavo Date: Thu, 9 Jan 2025 11:02:47 -0600 Subject: [PATCH] wrappers --- wrappers/pgsql-start | 36 ++++++++++++++++++++++++++++++++++++ wrappers/pgsql-stop | 7 +++++++ wrappers/pgweb | 33 +++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100755 wrappers/pgsql-start create mode 100755 wrappers/pgsql-stop create mode 100755 wrappers/pgweb diff --git a/wrappers/pgsql-start b/wrappers/pgsql-start new file mode 100755 index 0000000..7afa997 --- /dev/null +++ b/wrappers/pgsql-start @@ -0,0 +1,36 @@ +#!/bin/sh + +PODMAN_NAME="PostgreSQL" +PGSQL_IMAGE="docker.io/library/postgres" + +: "${HOST:=localhost}" +: "${PORT:=5455}" +: "${PASS:=1234}" +: "${USER:=postgres}" +: "${DB:=local}" + +if ! command -v podman >/dev/null 2>&1 ; then + echo "podman not found in PATH" + exit 1 +fi + +if command -v fuser >/dev/null 2>&1 ; then + if fuser "$PORT"/tcp >/dev/null 2>&1 ; then + echo "Port already in use" + exit 1 + fi +fi + +if ! podman run \ + --name "$PODMAN_NAME" \ + -p "$PORT":5432 \ + -e POSTGRES_USER="$USER" \ + -e POSTGRES_PASSWORD="$PASS" \ + -e POSTGRES_DB="$DB" \ + --replace \ + -d \ + "$PGSQL_IMAGE" 1>&- ; then + exit 1 +fi + +echo "postgresql://$USER:$PASS@$HOST:$PORT/$DB" diff --git a/wrappers/pgsql-stop b/wrappers/pgsql-stop new file mode 100755 index 0000000..f2c2c6d --- /dev/null +++ b/wrappers/pgsql-stop @@ -0,0 +1,7 @@ +#!/bin/sh + +PODMAN_NAME="PostgreSQL" + +if ! podman stop "$PODMAN_NAME" 1>&- ; then + echo "Failed to stop podman running postgres" +fi diff --git a/wrappers/pgweb b/wrappers/pgweb new file mode 100755 index 0000000..e2b5c4d --- /dev/null +++ b/wrappers/pgweb @@ -0,0 +1,33 @@ +#!/bin/sh + +PGWEB="$HOME/.local/share/pgweb/pgweb_linux_amd64" + +if ! [ -d "${PGWEB%/*}" ] ; then + mkdir -p "${PGWEB%/*}" +fi + +LATEST="$(curl -s https://api.github.com/repos/sosedoff/pgweb/releases/latest | + grep '"tag_name":' | cut -d'"' -f 4)" + +INSTALLED="$($PGWEB --version | cut -d ' ' -f 2)" + +if [ "$INSTALLED" != "$LATEST" ] ; then + opt="$(printf 'Yes\nNo\n' | menu "Newer pgweb version available, update?")" + + if [ "$opt" = "Yes" ] ; then + echo "Updating pgweb..." + + if ! curl -L --progress-bar -o "$PGWEB.zip" \ + https://github.com/sosedoff/pgweb/releases/latest/download/pgweb_linux_amd64.zip ; then + echo "Error updating pgweb" + exit 1 + fi + + (cd "${PGWEB%/*}" && unzip "$PGWEB.zip") + + chmod +x "$PGWEB" + fi + unset opt +fi + +exec $PGWEB