A shepherd for your Appimages.
0

Configure Feed

Select the types of activity you want to include in your feed.

rollback: undo on failure

Aly Raffauf (Jun 19, 2026, 3:40 AM EDT) 36d1bcca ffccce28

+7
+7
internal/appherder/rollback.go
··· 31 31 return fmt.Errorf("check saved version %q: %w", version, err) 32 32 } 33 33 34 + // Track where the current binary was moved so we can put it back if the 35 + // second rename fails. 36 + var movedCurrentTo string 34 37 if _, err := os.Stat(current); err == nil { 35 38 currentVersion := readAppImageVersion(current) 36 39 currentSaved := filepath.Join(versionsDir, currentVersion+".appimage") ··· 38 41 if err := os.Rename(current, currentSaved); err != nil { 39 42 return fmt.Errorf("save current version before rollback: %w", err) 40 43 } 44 + movedCurrentTo = currentSaved 41 45 } 42 46 } 43 47 44 48 if err := os.Rename(saved, current); err != nil { 49 + if movedCurrentTo != "" { 50 + os.Rename(movedCurrentTo, current) //nolint:errcheck 51 + } 45 52 return fmt.Errorf("restore version %s: %w", version, err) 46 53 } 47 54 if err := os.Chmod(current, 0o755); err != nil {