MasterCommander 1.0.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package MasterCommander --version 1.0.2                
NuGet\Install-Package MasterCommander -Version 1.0.2                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MasterCommander" Version="1.0.2" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add MasterCommander --version 1.0.2                
#r "nuget: MasterCommander, 1.0.2"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install MasterCommander as a Cake Addin
#addin nuget:?package=MasterCommander&version=1.0.2

// Install MasterCommander as a Cake Tool
#tool nuget:?package=MasterCommander&version=1.0.2                

MasterCommander

Write code, not commands. MasterCommander provides a simple, consistent interface for common development tasks.

Logo MasterCommander MasterCommander is a versatile command-line utility designed to streamline the workflow for developers working with multiple technology stacks. By integrating common operations for Git, .NET, Docker, and npm into a single application, MasterCommander enhances productivity and simplifies project setup and management tasks.

phmatray - MasterCommander License: GPL-3.0-or-later stars - MasterCommander forks - MasterCommander

GitHub tag issues - MasterCommander GitHub pull requests GitHub contributors GitHub last commit

codecov Codacy Badge


๐Ÿ“ Table of Contents


๐Ÿ Getting started

Use your favorite CLI tools without leaving your code editor:

This example demonstrates how to use MasterCommander to create a new .NET solution and project, initialize a Git repository, and build and run the project. In addition, this code adds a .gitignore file, an .editorconfig file, and a global.json file to the project.

private const string SdkVersion = "8.0.101";
private const string SolutionName = "AppDemo";
private const string ConsoleProjectName = $"{SolutionName}.Console";
private const string ConsoleProjectDirectory = $"src/{ConsoleProjectName}";
private const string ConsoleCsproj = $"{ConsoleProjectDirectory}/{ConsoleProjectName}.csproj";

await git.InitAsync();
await git.StatusAsync();
await dotnet.NewAsync(new DotnetNewGitignoreOptions());
await dotnet.NewAsync(new DotnetNewEditorConfigOptions());
await dotnet.NewAsync(new DotnetNewNuGetConfigOptions());
await dotnet.NewAsync(new DotnetNewGlobalJsonOptions { SdkVersion = SdkVersion });
await dotnet.NewAsync(new DotnetNewSolutionOptions { OutputName = SolutionName });
await dotnet.NewAsync(new DotnetNewConsoleOptions { OutputName = ConsoleProjectName, OutputDirectory = ConsoleProjectDirectory });
await dotnet.SlnAddAsync(ConsoleCsproj);
await dotnet.BuildAsync();
await dotnet.BuildAsync(new DotnetBuildOptions { Configuration = "Release" });
await dotnet.RunAsync(new DotnetRunOptions { Project = ConsoleCsproj, Configuration = "Release" });

You can standardize your development workflow by using MasterCommander to perform common tasks across multiple projects and technology stacks.

Output from MasterCommander commands is displayed in a clean, readable format:

MasterCommander Screenshot

๐Ÿ“„ Documentation

MasterCommander provides a COMPLETE DOCUMENTATION of the library.

All summaries are written in English. If you want to help us translate the documentation, please open an issue to discuss it.

Note: The documentation is generated using Doraku/DefaultDocumentation tool. It is generated automatically when the project is built.

๐Ÿ“Œ Features

Current Features

  • Unified Interface: MasterCommander provides a single interface for interacting with multiple development tools.
  • Simple Commands: Execute common development tasks with simple, intuitive commands.
  • Cross-Platform: MasterCommander is designed to work on Windows, macOS, and Linux.
  • Customizable: Add new commands and features to MasterCommander to suit your workflow.

Roadmap (next features)

  • WIP โ‡’ .NET Projects: Easily create new .NET solutions and projects.
  • WIP โ‡’ Git Integration: Initialize new repositories, check status, and more with built-in Git commands.
  • WIP โ‡’ Docker Support: Manage Docker containers and images through simple commands.
  • WIP โ‡’ npm Packages: Handle npm packages and run npm scripts within your projects.
  • Comprehensive API documentation that is easy to understand
  • High-Level API for common use cases
  • More tests
  • More examples
  • More features

๐Ÿ“ฅ Installation

๐Ÿ“‹ Prerequisites

To use MasterCommander, ensure you have the following installed on your system:

  • Git
  • .NET 8.0 (supported versions: 8.0.101 or later)
  • A C# IDE (Visual Studio, JetBrains Rider, etc.)
  • A C# compiler (dotnet CLI, etc.)
  • Docker (optional)
  • Node.js and npm (optional)
We use the latest C# features

This library targets .NET 8.0 and uses the latest C# features. It is written in C# 12.0 and uses the new init properties, record types, switch expressions, using declarations and more.

I invite you to read the C# 12.0 documentation to learn more about these features.

๐Ÿš€ From Source

You can also build MasterCommander from source. Follow these steps to get started:

  1. Clone the repository to your local machine.
  2. Navigate to the cloned directory and build the project using the .NET CLI: dotnet build.
  3. Run the application with dotnet run from within the source directory.
  4. Or... open the project in Visual Studio (or JetBrains Rider) and run the application from the IDE.

๐Ÿ“ฆ NuGet Packages

To install MasterCommander, you can use the NuGet package manager. Run the following command in your terminal:

dotnet add package MasterCommander --version 1.0.0-alpha.0.40
Package Name NuGet Version Badge NuGet Downloads Badge Package Explorer
MasterCommander NuGet NuGet Explore

This table is automatically updated regularly the latest developments and releases.

๐Ÿ“Š Code Quality

We strive for the highest code quality in MasterCommander. To ensure this, we use the following tools:

  • StyleCop
  • .editorconfig

๐Ÿงช Tests Specifications

We use xUnit and FluentAssertions to write and run tests for MasterCommander. This ensures that the library is reliable and performs as expected.

๐Ÿค Contributing

How to contribute?

Contributions to MasterCommander are welcome! Whether it's reporting bugs, discussing improvements, or submitting pull requests, all contributions help make MasterCommander a better tool for developers.

Before submitting pull requests, please ensure you have discussed the proposed changes with the project maintainers.

A great way to contribute to MasterCommander is to add new commands. If you have a command you'd like to see added to MasterCommander, please open an issue to discuss it.

Contributors

Contributors

โ“ Issues and Feature Requests

For reporting bugs or suggesting new features, kindly submit these as an issue to the MasterCommander Repository. We value your contributions, but before submitting an issue, please ensure it is not a duplicate of an existing one.

โœ‰๏ธ Contact

You can contact us by opening an issue on this repository.

๐Ÿ“œ License

GNU General Public License v3.0 or later.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.4 145 3/14/2024
1.0.3 125 2/27/2024
1.0.2 126 2/12/2024
1.0.1 113 2/12/2024
1.0.0-alpha.0.47 56 2/11/2024
1.0.0-alpha.0.45 50 2/11/2024
1.0.0-alpha.0.44 55 2/11/2024
1.0.0-alpha.0.43 53 2/11/2024
1.0.0-alpha.0.42 50 2/11/2024
1.0.0-alpha.0.41 54 2/11/2024
1.0.0-alpha.0.40 59 2/10/2024