50
scripts/uninstall.sh
Executable file
50
scripts/uninstall.sh
Executable file
@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "${SCRIPT_DIR}/lib.sh"
|
||||
|
||||
PURGE_DATA=false
|
||||
PURGE_IMAGES=false
|
||||
ASSUME_YES=false
|
||||
WITH_TLS=false
|
||||
CLOSE_PUBLIC_WEB=false
|
||||
|
||||
for arg in "$@"; do
|
||||
case "$arg" in
|
||||
--purge-data) PURGE_DATA=true ;;
|
||||
--purge-images) PURGE_IMAGES=true ;;
|
||||
--yes) ASSUME_YES=true ;;
|
||||
--with-tls) WITH_TLS=true ;;
|
||||
--close-public-web) CLOSE_PUBLIC_WEB=true ;;
|
||||
*) die "Unknown argument: $arg" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
load_env
|
||||
|
||||
if [[ "${PURGE_DATA}" == "true" && "${ASSUME_YES}" != "true" ]]; then
|
||||
read -r -p "This will delete ${GITEA_BASE_PATH}/gitea-data and ${GITEA_BASE_PATH}/postgres. Continue? [y/N]: " answer
|
||||
[[ "${answer}" == "y" || "${answer}" == "Y" ]] || die "Aborted by user"
|
||||
fi
|
||||
|
||||
log "Stopping and removing containers"
|
||||
if [[ "${WITH_TLS}" == "true" ]]; then
|
||||
compose --profile tls down --remove-orphans
|
||||
else
|
||||
compose down --remove-orphans
|
||||
fi
|
||||
|
||||
if [[ "${PURGE_IMAGES}" == "true" ]]; then
|
||||
log "Removing docker images"
|
||||
docker image rm gitea/gitea:1.24.2 postgres:16-alpine caddy:2.10-alpine || true
|
||||
fi
|
||||
|
||||
if [[ "${PURGE_DATA}" == "true" ]]; then
|
||||
log "Purging persistent data under ${GITEA_BASE_PATH}"
|
||||
rm -rf "${GITEA_BASE_PATH}/gitea-data" "${GITEA_BASE_PATH}/postgres" "${GITEA_BASE_PATH}/caddy-data" "${GITEA_BASE_PATH}/caddy-config"
|
||||
fi
|
||||
|
||||
remove_firewall_rules "${CLOSE_PUBLIC_WEB}"
|
||||
|
||||
log "Uninstall complete"
|
||||
Reference in New Issue
Block a user