Swallow.TaskRunner 0.0.1

dotnet tool install --global Swallow.TaskRunner --version 0.0.1                
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest # if you are setting up this repo
dotnet tool install --local Swallow.TaskRunner --version 0.0.1                
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=Swallow.TaskRunner&version=0.0.1                
nuke :add-package Swallow.TaskRunner --version 0.0.1                

Swallow.TaskRunner

A "task runner" to run common operations via commandline. The alternative to launch profiles when solely working on the CLI. Because why should only other toolchains get nice stuff?

This tool is greatly influence by the way dotnet tool works for repository-local tools to feel familiar.

Why not use launch profiles?

Because you're not always working in an IDE. Doing these via CLI feels.. clunky.

Why not use justfile/makefile/some other tool?

Whatever floats your boat! This is just an alternative to feel "native" for .NET.

Why not use MSBuild targets?

MSBuild is to this what a anti-material missle launcher is to a slingshot. Yes, you can launch a stone with both. But are you really gonna do that?

Getting started

Install it as a local tool and initialize a new manifest by running dotnet task new-manifest. This will create a file .config/dotnet-tasks.json relative to the current directory. When invoking dotnet task, it will look for this manifest going upwards, starting from the current directory.

The task manifest

{
  "Version": 1,
  "shell-command": "echo 'This is some text I can print out'",
  "shell-sequence": [
    "echo 'Do this first'",
    "echo 'Do this second'",
    "exit 255",
    "echo 'Never do this!"
  ]
}

Roadmap

  • Running plain shell commands
  • Adding/removing tasks via CLI
  • Sequential tasks, i.e. many commands in order (with proper cancellation!)
  • Running "abstract" commands like "copy", "remove" that work across shells
  • Nested names for tasks ("my-stuff other-stuff foo")
  • Parameters for tasks
  • Specifying default tasks
Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last updated
0.0.1 68 11/25/2024