A shepherd for your Appimages.
0

Configure Feed

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

upgrade: only handle appherder-managed appimages

Aly Raffauf (Jun 19, 2026, 2:34 AM EDT) 63a9b347 4779d958

+16 -5
+16 -5
internal/appherder/upgrade.go
··· 30 30 Err error 31 31 } 32 32 33 - // CheckUpgrades checks every AppImage in ~/AppImages for an available update. 34 - // Results come back in sorted filename order. Apps with no update info or 35 - // already current are included with NoSource/Available=false so the caller 36 - // can decide what to show. 33 + // CheckUpgrades checks appherder-managed AppImages for available updates. 34 + // Only apps whose desktop file carries the X-AppHerder=true marker are 35 + // included. Results come back in sorted filename order. Apps with no update 36 + // info or already current are included with NoSource/Available=false so the 37 + // caller can decide what to show. 37 38 func (a App) CheckUpgrades(ctx context.Context) ([]UpgradeCheck, error) { 38 39 files, err := listAppImages(a.appimagesDir) 39 40 if err != nil { 40 41 return nil, err 41 42 } 42 - return parallelMap(ctx, files, checkConcurrency, func(ctx context.Context, file string) UpgradeCheck { 43 + 44 + var managed []string 45 + for _, file := range files { 46 + name := strings.TrimSuffix(filepath.Base(file), filepath.Ext(file)) 47 + desktop := filepath.Join(a.applicationsDir, name+".desktop") 48 + if owned, _ := isManagedDesktop(desktop); owned { 49 + managed = append(managed, file) 50 + } 51 + } 52 + 53 + return parallelMap(ctx, managed, checkConcurrency, func(ctx context.Context, file string) UpgradeCheck { 43 54 return checkOne(ctx, file) 44 55 }), nil 45 56 }