code: func Update(ctx context.Context, pre bool, version semver.Version) error {
  	if err := IsUpdateable(ctx); err != nil {
  		out.Error(ctx, "Your gopass binary is externally managed. Can not update.")
  		out.Debug(ctx, "Error: %s", err)
  		return nil
  	}
  
  	ok, err := termio.AskForBool(ctx, "Do you want to check for available updates?", true)
  	if err != nil {
  		return err
  	}
  	if !ok {
  		return nil
  	}
  
  	r, err := LatestRelease(ctx, pre || len(version.Pre) > 0)
  	if err != nil {
  		return err
  	}
  
  	out.Debug(ctx, "Current: %s - Latest: %s", version.String(), r.Version().String())
  	if version.GTE(r.Version()) {
  		out.Green(ctx, "gopass is up to date (%s)", version.String())
  		return nil
  	}
  
  	out.Debug(ctx, "Assets: %+v", r.Assets)
  	for _, asset := range r.Assets {
  		name := strings.TrimSuffix(strings.TrimPrefix(asset.Name, "gopass-"), ".tar.gz")
  		p := strings.Split(name, "-")
  		if len(p) < 3 {
  			continue
  		}
  		if p[len(p)-2] != runtime.GOOS {
  			continue
  		}
  		if p[len(p)-1] != runtime.GOARCH {
  			continue
  		}
  		if asset.URL == "" {
  			continue
  		}
  		if err := updateTo(ctx, r.Version().String(), asset.URL); err != nil {
  			return errors.Wrapf(err, "Failed to update gopass: %s", err)
  		}
  		return nil
  	}
  	return errors.New("no supported binary found")
  }
docs: // Update will start hte interactive update assistant