sync build tree from private myoffice

This commit is contained in:
myoffice-sync
2026-08-05 14:14:50 +00:00
parent 73b7dd8f51
commit eb475decaf
3 changed files with 26 additions and 8 deletions
+22 -4
View File
@@ -87,19 +87,37 @@ install_aspnet_runtime() {
}
setup_postgres() {
msg "Configuring PostgreSQL"
msg "Configuring PostgreSQL (UTF8 — required for Npgsql ICU collations)"
systemctl enable --now postgresql
# Ensure locale exists before CREATE DATABASE … LC_COLLATE
sed -i 's/^# *en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen 2>/dev/null || true
locale-gen en_US.UTF-8 >/dev/null 2>&1 || true
if ! as_postgres psql -tAc "SELECT 1 FROM pg_roles WHERE rolname='${PG_USER}'" | grep -q 1; then
as_postgres psql -c "CREATE USER ${PG_USER} WITH PASSWORD '${PG_PASS}';"
else
as_postgres psql -c "ALTER USER ${PG_USER} WITH PASSWORD '${PG_PASS}';"
fi
if ! as_postgres psql -tAc "SELECT 1 FROM pg_database WHERE datname='${PG_DB}'" | grep -q 1; then
as_postgres psql -c "CREATE DATABASE ${PG_DB} OWNER ${PG_USER};"
local enc
enc=$(as_postgres psql -tAc "SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname='${PG_DB}'" 2>/dev/null | tr -d '[:space:]' || true)
if [[ -n "$enc" && "$enc" != "UTF8" ]]; then
msg "Recreating ${PG_DB}: encoding was ${enc}, need UTF8"
as_postgres psql -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='${PG_DB}' AND pid <> pg_backend_pid();" || true
as_postgres psql -c "DROP DATABASE IF EXISTS ${PG_DB};"
enc=""
fi
if [[ -z "$enc" ]]; then
as_postgres psql -c "CREATE DATABASE ${PG_DB} OWNER ${PG_USER} ENCODING 'UTF8' LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8' TEMPLATE template0;" \
|| as_postgres psql -c "CREATE DATABASE ${PG_DB} OWNER ${PG_USER} ENCODING 'UTF8' LC_COLLATE 'C.UTF-8' LC_CTYPE 'C.UTF-8' TEMPLATE template0;"
fi
as_postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE ${PG_DB} TO ${PG_USER};"
as_postgres psql -d "$PG_DB" -c "GRANT ALL ON SCHEMA public TO ${PG_USER};" || true
msg "PostgreSQL ready (db/user/pass=${PG_DB})"
enc=$(as_postgres psql -tAc "SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname='${PG_DB}'" | tr -d '[:space:]')
msg "PostgreSQL ready (db/user/pass=${PG_DB}, encoding=${enc})"
}
write_runtime_config() {