diff --git a/CHANGELOG.md b/CHANGELOG.md index c12b25d..addbccc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ### Fixed +* [--project value should be tested if path exists](https://github.com/ionide/FSharp.Analyzers.SDK/issues/141) (thanks @dawedawe!) * [Provide better DX when project cracking failed](https://github.com/ionide/FSharp.Analyzers.SDK/issues/126) (thanks @dawedawe!) ## [0.19.0] - 2023-11-08 diff --git a/src/FSharp.Analyzers.Cli/Program.fs b/src/FSharp.Analyzers.Cli/Program.fs index d4b93d7..cb1b63b 100644 --- a/src/FSharp.Analyzers.Cli/Program.fs +++ b/src/FSharp.Analyzers.Cli/Program.fs @@ -454,20 +454,13 @@ let main argv = exit 1 | [], Some fscArgs -> runFscArgs client fscArgs ignoreFiles severityMapping |> Async.RunSynchronously | projects, None -> - let runProj (proj: string) = - async { - let project = - if Path.IsPathRooted proj then - proj - else - Path.GetFullPath(Path.Combine(Environment.CurrentDirectory, proj)) - - let! results = runProject client toolsPath project ignoreFiles severityMapping - return results - } + for projPath in projects do + if not (File.Exists(projPath)) then + printError $"Invalid `--project` argument. File does not exist: '{projPath}'" + exit 1 projects - |> List.map runProj + |> List.map (fun projPath -> runProject client toolsPath projPath ignoreFiles severityMapping) |> Async.Sequential |> Async.RunSynchronously |> Array.choose id