func updateCachedCredentials()

in cmd/apmtool/credentials.go [58:78]


func updateCachedCredentials(url string, c *credentials) error {
	if err := updateCache("credentials.json", func(data []byte) ([]byte, error) {
		m := make(map[string]*credentials)
		if data != nil {
			if err := json.Unmarshal(data, &m); err != nil {
				return nil, err
			}
		}
		m[url] = c
		now := time.Now()
		for k, v := range m {
			if !v.Expiry.IsZero() && v.Expiry.Before(now) {
				delete(m, k)
			}
		}
		return json.Marshal(m)
	}); err != nil {
		return fmt.Errorf("error updating cached credentials: %w", err)
	}
	return nil
}