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 9a5daf994d0e04939cacc9d882695a02bbfa60d9..700455b418fec506f552d66ae27488fc8c1767b4 100644 |
--- a/go/src/infra/tools/cipd/apps/cipd/friendly.go |
+++ b/go/src/infra/tools/cipd/apps/cipd/friendly.go |
@@ -208,6 +208,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 { |
@@ -461,6 +469,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)) |
} |