GunslingerCLI 1.1.1

dotnet tool install --global GunslingerCLI --version 1.1.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 GunslingerCLI --version 1.1.1
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=GunslingerCLI&version=1.1.1
nuke :add-package GunslingerCLI --version 1.1.1

Gunslinger Templating Engine - CLI Version

The Gunslinger templating engine is built on top of the Handlebars templating system, which is an enhancement of the Logic-less Mustache templating system.

I've continued in the tradition of naming this tool after a style of facial hair.

Gunslinger Beard

The primary idea is that a json config file and some templates can provide everything you need to generate massive portions of your project in a very flexible way.

This version is designed to be installed as a command line tool on the host machine which is probably going to be a developer machine, but could potentially be a build server.

Use the wiki to see documentation and explanation of different elements.

CLI Tool

Project Setup

These three lines were needed in the csproj:

<PackAsTool>true</PackAsTool>
<ToolCommandName>gs</ToolCommandName>
<PackageOutputPath>./nupkg</PackageOutputPath>

Building and deploying

Terminal command must be run in the terminal from the location of the csproj. I think install works differently if using a non-local nupkg. More on that when I figure it out.

  • build solution
  • create a nupkg in the PackageOutputPath location

    dotnet pack

  • install the tool globally

    dotnet tool install -g --add-source ./nupkg GunslingerCLI

Update the tool

dotnet tool update -g --add-source ./nupkg GunslingerCLI

Uninstall the tool

dotnet tool uninstall GunslingerCLI -g

Using Docker for testing

Initial image without sample database

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=yourStrong(!)Password" -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-CU15-ubuntu-20.04

Personal image with sample database

docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=yourStrong(!)Password" -p 1433:1433 -d drolling/gunslinger-sample-database:latest

Notes: Making changes to the sample container

'sweet_tesla' and '426cde529148' were current names/ids of containers when I made these notes. 'drolling' is my dockerhub image repository, which is public.

docker commit sweet_tesla gunslinger-sample-database

docker tag 426cde529148 drolling/gunslinger-sample-database

docker push drolling/gunslinger-sample-database

Connection

connection string: Server=localhost,1433;Database=Sample;User Id=sa;Password=yourStrong(!)Password;

username: sa password: yourStrong(!)Password

Test Notes

Some of these tests are old and I don't remember what they were for 😦

Also, many of these tests are simply a shortcut to run a scenario and don't really perform a test at all. That sucks, but that is what I have for now.

dotnet tool install documentation

Pluralizer Github link

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
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
1.1.1 469 8/6/2022
1.1.0 420 5/24/2022