From 461ea4af25462a1ec20e1272178bab52a6e80698 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 18 Aug 2021 01:47:43 +0100 Subject: [PATCH] Add executable check to doctor command --- internal/cmd/doctorcmd.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/cmd/doctorcmd.go b/internal/cmd/doctorcmd.go index fc397aae8f2..bb0ea982d03 100644 --- a/internal/cmd/doctorcmd.go +++ b/internal/cmd/doctorcmd.go @@ -67,6 +67,9 @@ type dirCheck struct { dirname string } +// An executableCheck checks the executable. +type executableCheck struct{} + // A fileCheck checks that a file exists. type fileCheck struct { name string @@ -116,6 +119,7 @@ func (c *Config) runDoctorCmd(cmd *cobra.Command, args []string) error { versionStr: c.versionStr, }, &osArchCheck{}, + &executableCheck{}, &fileCheck{ name: "config-file", filename: string(c.configFileAbsPath), @@ -319,6 +323,18 @@ func (c *dirCheck) Run() (checkResult, string) { return checkOK, fmt.Sprintf("%s is a directory", c.dirname) } +func (c *executableCheck) Name() string { + return "executable" +} + +func (c *executableCheck) Run() (checkResult, string) { + executable, err := os.Executable() + if err != nil { + return checkError, err.Error() + } + return checkOK, executable +} + func (c *fileCheck) Name() string { return c.name }