package cmd import "errors" // Sentinel errors recognized by Execute → exit code mapping. // // exists → ErrNotFound → 1 // download without --url, key missing → ErrMissNoFallback → 3 // any other error → 2 var ( ErrNotFound = errors.New("cacher: key not found") ErrMissNoFallback = errors.New("cacher: cache miss and no --url fallback") ) func exitCodeFor(err error) int { switch { case err == nil: return 0 case errors.Is(err, ErrNotFound): return 1 case errors.Is(err, ErrMissNoFallback): return 3 default: return 2 } }