diff --git a/config.json.example b/config.json.example
index 60dc771e..52ff4537 100644
--- a/config.json.example
+++ b/config.json.example
@@ -4,5 +4,6 @@
"LibrariesIndex": "/tmp/libraries/library_index.json",
"LibrariesDB": "/tmp/libraries_db.json",
"GitClonesFolder": "/tmp/gitclones",
+ "ArduinoLintPath": "/usr/bin/arduino-lint",
"CronTabEntry": "0 0 0 * * *"
-}
\ No newline at end of file
+}
diff --git a/libraries/lint.go b/libraries/lint.go
index e9768425..0fde8985 100644
--- a/libraries/lint.go
+++ b/libraries/lint.go
@@ -49,7 +49,12 @@ func official(metadata *Repo) bool {
}
// RunArduinoLint runs Arduino Lint on the library and returns the report in the event of error or warnings.
-func RunArduinoLint(folder string, metadata *Repo) ([]byte, error) {
+func RunArduinoLint(arduinoLintPath string, folder string, metadata *Repo) ([]byte, error) {
+ if arduinoLintPath == "" {
+ // Assume Arduino Lint is installed under PATH.
+ arduinoLintPath = "arduino-lint"
+ }
+
JSONReportFolder, err := ioutil.TempDir("", "arduino-lint-report-")
if err != nil {
panic(err)
@@ -59,7 +64,7 @@ func RunArduinoLint(folder string, metadata *Repo) ([]byte, error) {
// See: https://arduino.github.io/arduino-lint/latest/commands/arduino-lint/
cmd := exec.Command(
- "arduino-lint",
+ arduinoLintPath,
"--compliance=permissive",
"--format=text",
"--project-type=library",
diff --git a/libraries/lint_test.go b/libraries/lint_test.go
index fbb9a849..963a420a 100644
--- a/libraries/lint_test.go
+++ b/libraries/lint_test.go
@@ -101,7 +101,7 @@ func TestRunArduinoLint(t *testing.T) {
} else {
metadata.Types = []string{"Contributed"}
}
- report, err := RunArduinoLint(filepath.Join(testDataPath, "libraries", testTable.folder), &metadata)
+ report, err := RunArduinoLint("", filepath.Join(testDataPath, "libraries", testTable.folder), &metadata)
assert.Regexp(t, regexp.MustCompile(testTable.reportRegexp), string(report), testTable.testName)
testTable.errorAssertion(t, err, testTable.testName)
}
diff --git a/sync_libraries.go b/sync_libraries.go
index 729cbba5..7d3dae9c 100644
--- a/sync_libraries.go
+++ b/sync_libraries.go
@@ -49,6 +49,7 @@ type Config struct {
LibrariesIndex string
GitClonesFolder string
DoNotRunClamav bool
+ ArduinoLintPath string
}
func logError(err error) bool {
@@ -308,7 +309,7 @@ func syncLibraryTaggedRelease(logger *log.Logger, repo *libraries.Repository, ta
}
}
- report, err := libraries.RunArduinoLint(repo.FolderPath, repoMeta)
+ report, err := libraries.RunArduinoLint(config.ArduinoLintPath, repo.FolderPath, repoMeta)
reportTemplate := `Arduino Lint %s:
Click to expand Arduino Lint report