diff --git a/README.md b/README.md index d8375e3a..faae3ed8 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,10 @@ - Sketches - Libraries + +## Usage + +After installing `arduino-check`, run the command `arduino-check --help` for usage documentation. + +Set the `ARDUINO_CHECK_OFFICIAL` environment variable to "true" to run the checks that only apply to official Arduino +projects. diff --git a/configuration/configuration.go b/configuration/configuration.go index 2646ed3d..19374152 100644 --- a/configuration/configuration.go +++ b/configuration/configuration.go @@ -19,6 +19,7 @@ package configuration import ( "fmt" "os" + "strconv" "strings" "github.com/arduino/arduino-check/configuration/checkmode" @@ -83,8 +84,12 @@ func Initialize(flags *pflag.FlagSet, projectPaths []string) error { return fmt.Errorf("PROJECT_PATH argument %v does not exist", projectPaths[0]) } - // TODO: set via environment variable - // customCheckModes[checkmode.Official] = false + if officialModeString, ok := os.LookupEnv("ARDUINO_CHECK_OFFICIAL"); ok { + customCheckModes[checkmode.Official], err = strconv.ParseBool(officialModeString) + if err != nil { + return fmt.Errorf("ARDUINO_CHECK_OFFICIAL environment variable value %s not valid", officialModeString) + } + } logrus.WithFields(logrus.Fields{ "output format": OutputFormat(), diff --git a/configuration/configuration_test.go b/configuration/configuration_test.go index 8f8d1624..d0eb8d33 100644 --- a/configuration/configuration_test.go +++ b/configuration/configuration_test.go @@ -133,4 +133,15 @@ func TestInitialize(t *testing.T) { assert.Equal(t, paths.New(projectPaths[0]), TargetPath()) assert.Error(t, Initialize(flags, []string{"/nonexistent"})) + + os.Setenv("ARDUINO_CHECK_OFFICIAL", "true") + assert.Nil(t, Initialize(test.ConfigurationFlags(), projectPaths)) + assert.True(t, customCheckModes[checkmode.Official]) + + os.Setenv("ARDUINO_CHECK_OFFICIAL", "false") + assert.Nil(t, Initialize(test.ConfigurationFlags(), projectPaths)) + assert.False(t, customCheckModes[checkmode.Official]) + + os.Setenv("ARDUINO_CHECK_OFFICIAL", "invalid value") + assert.Error(t, Initialize(test.ConfigurationFlags(), projectPaths)) }