diff options
-rw-r--r-- | NEWS | 5 | ||||
-rw-r--r-- | postgresql-setup.in | 13 |
2 files changed, 18 insertions, 0 deletions
@@ -1,5 +1,10 @@ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +New in 3.1 version + +* The --new-systemd-unit option now cleans the recently created drop-in + directory if something goes wrong. + Bugfixes in 3.2 version * Fix regression of setting the default pgdata variable for non-default diff --git a/postgresql-setup.in b/postgresql-setup.in index e4f640a..0337bdd 100644 --- a/postgresql-setup.in +++ b/postgresql-setup.in @@ -168,6 +168,7 @@ initdb() info $"Initializing database in '$pgdata'$port_info" if check_not_initialized && perform_initdb; then info $"Initialized, logs are in ${initdb_log}" + cleanup_dropin= else error $"Initializing database failed, possibly see $initdb_log" script_result=1 @@ -324,6 +325,8 @@ generate_systemd_dropin() mkdir -p "$dropindir" \ || die "Can not create '$dropindir'" + cleanup_dropin="rm -rf \"$dropindir\"" + cat <<EOF > "$dropin" || die "Can not write to '$dropin'" [Service] Environment=PGDATA=$pgdata @@ -502,6 +505,16 @@ service_configuration() test -n "$envfile_pgport" && set_var "$portvar" "$envfile_pgport" } +cleanup_dropin= +exit_handler() +{ + test -n "$cleanup_dropin" && { + info "cleaning up created dropin directory" + eval "$cleanup_dropin" + } +} + +trap exit_handler 0 # <Compat> # Alow users to use the old style arguments like |