Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions .github/workflows/build+test+deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,28 @@ jobs:
- name: Run FSharpLint on itself
run: make selfcheck

testToolInvocation:
needs: buildAndTest
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
global-json-file: global.json
- name: Setup .NET 10
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0.x'
- name: Restore tools
run: dotnet tool restore
- name: Build and pack
run: dotnet fsi build.fsx -t Pack
- name: Remove global.json to allow using .NET 10 SDK (for dnx)
run: rm --force global.json
- name: Run fsharplint as tool using dnx
run: dnx fsharplint lint ./src/FSharpLint.Console/FSharpLint.Console.fsproj --source ./out/ --prerelease --yes --interactive false

deployReleaseBinaries:
needs: buildAndTest
Expand Down Expand Up @@ -139,8 +161,8 @@ jobs:
</configuration>
EOF
- name: Install FSharpLint from downloaded binaries
run: dotnet tool install --global dotnet-fsharplint --prerelease --framework net8.0
run: dotnet tool install --global fsharplint --prerelease --framework net8.0
- name: Add .NET tools to PATH
run: echo "$HOME/.dotnet/tools" >> $GITHUB_PATH
- name: Lint FSharpLint.Console project (net8.0 only)
run: dotnet fsharplint lint ./src/FSharpLint.Console/FSharpLint.Console.fsproj --framework net8.0
run: fsharplint lint ./src/FSharpLint.Console/FSharpLint.Console.fsproj --framework net8.0
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ The [docs](http://fsprojects.github.io/FSharpLint/) contain an overview of the t

Package | Version
------- | --------
[dotnet tool](https://www.nuget.org/packages/dotnet-fsharplint/) | [![NuGet Status](http://img.shields.io/nuget/v/dotnet-fsharplint.svg?style=flat)](https://www.nuget.org/packages/dotnet-fsharplint/)
[dotnet tool](https://www.nuget.org/packages/fsharplint/) | [![NuGet Status](http://img.shields.io/nuget/v/fsharplint.svg?style=flat)](https://www.nuget.org/packages/fsharplint/)
[API](https://www.nuget.org/packages/FSharpLint.Core/) | [![NuGet Status](http://img.shields.io/nuget/v/FSharpLint.Core.svg?style=flat)](https://www.nuget.org/packages/FSharpLint.Core/)

## How to build
Expand Down
18 changes: 13 additions & 5 deletions docs/content/how-tos/install-dotnet-tool.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,24 @@ category: how-to
menu_order: 1
---

# Installing as dotnet tool
# Running fsharplint

The console application is a wrapper around the linter. For basic usage, just run `dnx fsharplint lint <input>`, where `input` can be an fsproj, sln, fs, fsx file, or a string of source code. This will install (if run for the first time) and run fsharplint.

Run `dnx fsharplint --help` for full usage information.

# Installing and runnnig on .NET versions before 10
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

'runnnig' should be 'running' ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's more obvious when looking at the HTML view:
image


## Installing as dotnet tool

The linter can be [installed as a dotnet tool](https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-tool-install).

Install as a global tool: `dotnet tool install -g dotnet-fsharplint`.
Install as a global tool: `dotnet tool install -g fsharplint`.

Install as tool to specific directory: `dotnet tool install --tool-path <my_directory> dotnet-fsharplint`
Install as tool to specific directory: `dotnet tool install --tool-path <my_directory> fsharplint`

## Running the Console Application

The console application is a wrapper around the linter. For basic usage, just run `dotnet fsharplint lint <input>`, where `input` can be an fsproj, sln, fs, fsx file, or a string of source code.
If installed as a local tool, run `dotnet fsharplint lint <input>`

Run `dotnet fsharplint --help` for full usage information.
If installed as a global tool, run it as `fsharplint lint <input>`.
2 changes: 1 addition & 1 deletion src/FSharpLint.Console/FSharpLint.Console.fsproj
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<PackageTags>F#;fsharp;lint;FSharpLint;fslint;cli</PackageTags>
<PackageType>DotNetCliTool</PackageType>
<PackAsTool>true</PackAsTool>
<AssemblyName>dotnet-fsharplint</AssemblyName>
<AssemblyName>fsharplint</AssemblyName>
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@webwarrior-ws maybe we should rather use ToolCommandName here, as instructed by #746 (comment)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment that you've linked says that

It would have no impact on dnx

<RootNamespace>FSharpLint.Console</RootNamespace>
<IsPackable>true</IsPackable>
<RollForward>Major</RollForward>
Expand Down
2 changes: 1 addition & 1 deletion tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ module Tests =
|> Seq.sortByDescending _.Name
|> Seq.tryHead
match dllDir with
| Some dir -> dir.FullName </> "dotnet-fsharplint.dll"
| Some dir -> dir.FullName </> "fsharplint.dll"
| None -> failwithf "No target framework folder found in %s" binDir.FullName

let startInfo = ProcessStartInfo
Expand Down
Loading