From 0383e3c77e95635cbccad37f24db1884e0611e2b Mon Sep 17 00:00:00 2001 From: Daniel Linsley Date: Mon, 1 Jul 2024 17:18:17 +0000 Subject: [PATCH] do not download release for update stemcell unless required --- internal/commands/update_stemcell.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/commands/update_stemcell.go b/internal/commands/update_stemcell.go index fb3f4707..d2b77013 100644 --- a/internal/commands/update_stemcell.go +++ b/internal/commands/update_stemcell.go @@ -18,9 +18,8 @@ type UpdateStemcell struct { Options struct { flags.Standard - Version string `short:"v" long:"version" required:"true" description:"desired version of stemcell"` - ReleasesDir string `short:"rd" long:"releases-directory" default:"releases" description:"path to a directory to download releases into"` - WithoutDownload bool `long:"without-download" description:"updates stemcell releases without downloading releases"` + Version string `short:"v" long:"version" required:"true" description:"desired version of stemcell"` + ReleasesDir string `short:"rd" long:"releases-directory" default:"releases" description:"path to a directory to download releases into"` } FS billy.Filesystem MultiReleaseSourceProvider MultiReleaseSourceProvider @@ -93,14 +92,15 @@ func (update UpdateStemcell) Execute(args []string) error { } lock := &kilnfileLock.Releases[i] - if update.Options.WithoutDownload { - lock.SHA1 = remote.SHA1 - } else { + if remote.SHA1 == "" || remote.SHA1 == "not-calculated" { + // release source needs to download. local, err := releaseSource.DownloadRelease(update.Options.ReleasesDir, remote) if err != nil { return fmt.Errorf("while downloading release %q, encountered error: %w", rel.Name, err) } lock.SHA1 = local.Lock.SHA1 + } else { + lock.SHA1 = remote.SHA1 } lock.RemotePath = remote.RemotePath lock.RemoteSource = remote.RemoteSource