mirror of
https://github.com/empayre/fleet.git
synced 2024-11-06 08:55:24 +00:00
Handle RPM upgrade in %postun script (#14379)
This pull request addresses a key aspect of the RPM upgrade process - handling of scripts during upgrades vice pure deletion events. An RPM upgrade operation consists of both an Install and an Uninstall operation, meaning that during an upgrade, our %postun script is run and previously, it was causing the accidental deletion of binaries needed for the upgrade. To prevent this unwanted removal during upgrade scenarios, the %postun script now checks for the execution scenario in which it finds itself.
This commit is contained in:
parent
cf95e1ccda
commit
71709e5ef9
1
orbit/changes/14380-rpm-graceful-upgrade
Normal file
1
orbit/changes/14380-rpm-graceful-upgrade
Normal file
@ -0,0 +1 @@
|
||||
* Add a conditional check in the %postun script to prevent file deletion during RPM upgrade. The check ensures that files and directories are only removed during a full uninstall ( equals 0), safeguarding necessary files from unintended deletion during an upgrade.
|
@ -364,7 +364,11 @@ pkill fleet-desktop || true
|
||||
func writePostRemove(opt Options, path string) error {
|
||||
if err := ioutil.WriteFile(path, []byte(`#!/bin/sh
|
||||
|
||||
rm -rf /var/lib/orbit /var/log/orbit /usr/local/bin/orbit /etc/default/orbit /usr/lib/systemd/system/orbit.service /opt/orbit
|
||||
# For RPM during uninstall, $1 is 0
|
||||
# For Debian during remove, $1 is "remove"
|
||||
if [ "$1" = 0 ] || [ "$1" = "remove" ]; then
|
||||
rm -rf /var/lib/orbit /var/log/orbit /usr/local/bin/orbit /etc/default/orbit /usr/lib/systemd/system/orbit.service /opt/orbit
|
||||
fi
|
||||
`), constant.DefaultFileMode); err != nil {
|
||||
return fmt.Errorf("write file: %w", err)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user