Index: go/src/infra/tools/cipd/apps/cipd/friendly.go |
diff --git a/go/src/infra/tools/cipd/apps/cipd/friendly.go b/go/src/infra/tools/cipd/apps/cipd/friendly.go |
index b3769580f8ff0ead1183e6eeb6218cf2a18d2f94..2086997a01f5980ec265f76edf1e3aea2a4724f2 100644 |
--- a/go/src/infra/tools/cipd/apps/cipd/friendly.go |
+++ b/go/src/infra/tools/cipd/apps/cipd/friendly.go |
@@ -204,6 +204,14 @@ func (site *installationSite) initClient(authFlags authcli.Flags) (err error) { |
return |
} |
+// closeClient closes the underlying cipd.Client if necessary. |
+func (site *installationSite) closeClient() { |
+ if site.client != nil { |
+ site.client.Close() |
+ site.client = nil |
+ } |
+} |
+ |
// modifyConfig reads config file, calls callback to mutate it, then writes |
// it back. |
func (site *installationSite) modifyConfig(cb func(cfg *installationSiteConfig) error) error { |
@@ -457,6 +465,7 @@ func (c *installRun) Run(a subcommands.Application, args []string) int { |
if err = site.initClient(c.authFlags); err != nil { |
return c.done(nil, err) |
} |
+ defer site.closeClient() |
return c.done(site.installPackage(pkgName, version, c.force)) |
} |