func removeCurrentSymlink(info snap.PlaceInfo, inter interacter) error { var err1, err2 error // the snap "current" symlink currentActiveSymlink := filepath.Join(info.MountDir(), "..", "current") err1 = os.Remove(currentActiveSymlink) if err1 != nil && !os.IsNotExist(err1) { logger.Noticef("Failed to remove %q: %v", currentActiveSymlink, err1) } else { err1 = nil } // the data "current" symlink currentDataSymlink := filepath.Join(filepath.Dir(info.DataDir()), "current") err2 = os.Remove(currentDataSymlink) if err2 != nil && !os.IsNotExist(err2) { logger.Noticef("Failed to remove %q: %v", currentDataSymlink, err2) } else { err2 = nil } if err1 != nil && err2 != nil { return fmt.Errorf("cannot remove snap current symlink: %v and %v", err1, err2) } else if err1 != nil { return fmt.Errorf("cannot remove snap current symlink: %v", err1) } else if err2 != nil { return fmt.Errorf("cannot remove snap current symlink: %v", err2) } return nil }