CommandLineUtils
Verlite
CommandLineUtils | Verlite | |
---|---|---|
9 | 5 | |
2,171 | 24 | |
- | - | |
5.3 | 5.9 | |
about 1 month ago | about 1 month ago | |
C# | C# | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
CommandLineUtils
-
Enforcing command line arguments with CommandLineUtils?
The library doesn't support that format, here you can see that MultipleValues means for example "-o value1 -o value2" Options Support options with multiple values · Issue #311 · natemcmaster/CommandLineUtils · GitHub
-
How do I run a single .class file in C#?
You could roll your own with some command-line argument processing. You could write that yourself and use reflection, or for an example from a library I've used, example.
- Best way to build a console app with command line parser and dependency injection?
- Parsing the command line in the .NET 6 new console format?
- What's your favorite command line arg parser?
-
Writing tests for CLI tool
I want to test how my tools generated files and folders in the destination with different arguments passed to the program. However, in my old code, I put all the logic of working with arguments in the static int main( string[] args) function. I could not use Interface and Dependency injection to mock the CLI tools because CommandLineUtils does not have an interface library. Luckily, I found this guidance from the owner of CommandLineUtils, and he advised that "Split the command-line argument parser and application execution into separate class structures" to test various options programmatically. It is a great suggestion, and I rewrote my program by adding class CommandLineOptions and adding logic to class Generator to make it works with CommandLineOptions. I can kill two birds with one stone by this change: code refactoring and writing better tests. Another problem I had was my folder structure. Before, I put the project's sln file, .git file , and src files in the root of the folder. However, when I added a new test project for Shinny-SSG, I had it outside my git folder, and it would be impossible to commit the change and put it in my remote repository. To resolve this, I had to change my folder structure to this:
- Help with quite weird idea
- C# equivalent to Pythons cmd module?
-
Automatic .NET Versioning Tool
Thanks to https://github.com/natemcmaster/CommandLineUtils for supplying a lot of the command structures. If you're interested in creating your own dotnet tool, this is highly recommended.
Verlite
-
TIL: you can change the display width of tab characters in your GitHub settings if you don't like 8 character indentation
I personally just have a style that reduces the need for alignment: https://github.com/AshleighAdams/Verlite/tree/master/src/Verlite.Core
-
Constant merge conflicts on csproj files
Self promotion: I made Verlite for this purpose, tho something like GitVersion might be more suitable for your workflow.
-
Automatic .NET Versioning Tool
If anyone is interested, I recently released mine, with an approach closer to MinVer + tags as a source of truth: https://github.com/AshleighAdams/Verlite
- Verlite - A lightweight dotnet core versioning library based on tags
- I built Verlite, a lightweight versioning library with a feature set between MinVer and GitVersion
What are some alternatives?
Command Line Parser - The best C# command line parser that brings standardized *nix getopt style, for .NET. Includes F# support
GitVersion - From git log to SemVer in no time
spectre.console - A .NET library that makes it easier to create beautiful console applications.
GitRead.Net - .Net Standard library for reading Git repository data
Gui.cs - Cross Platform Terminal UI toolkit for .NET
GitLink - Making .NET open source accessible!
Fluent Command Line Parser - A simple, strongly typed .NET C# command line parser library using a fluent easy to use interface
NGit - Automated jgit port to c#
JustCli - Just a quick way to create your own command line tool
Nerdbank.GitVersioning - Stamp your assemblies, packages and more with a unique version generated from a single, simple version.json file and include git commit IDs for non-official builds.
Colorful.Console - Style your .NET console output!
GitExtensions - Git Extensions is a standalone UI tool for managing git repositories. It also integrates with Windows Explorer and Microsoft Visual Studio (2015/2017/2019).