{"id":13445655,"url":"https://github.com/bartoszgolek/NFlags","last_synced_at":"2025-03-20T21:30:59.041Z","repository":{"id":74440111,"uuid":"109048629","full_name":"bartoszgolek/NFlags","owner":"bartoszgolek","description":"Simple yet powerfull library to made parsing CLI arguments easy. Library also allow to print usage help \"out of box\".","archived":false,"fork":false,"pushed_at":"2021-12-20T08:31:22.000Z","size":284,"stargazers_count":49,"open_issues_count":2,"forks_count":0,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-09-30T20:47:43.032Z","etag":null,"topics":["cli","csharp","helper","library","parser","parsing"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bartoszgolek.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-10-31T20:25:50.000Z","updated_at":"2024-05-31T15:27:33.000Z","dependencies_parsed_at":"2024-01-05T20:52:58.224Z","dependency_job_id":"3a7a2820-5000-40c8-9e82-1a9ba0652e46","html_url":"https://github.com/bartoszgolek/NFlags","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartoszgolek%2FNFlags","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartoszgolek%2FNFlags/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartoszgolek%2FNFlags/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bartoszgolek%2FNFlags/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bartoszgolek","download_url":"https://codeload.github.com/bartoszgolek/NFlags/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244056428,"owners_count":20390720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","csharp","helper","library","parser","parsing"],"created_at":"2024-07-31T05:00:37.445Z","updated_at":"2025-03-20T21:30:59.036Z","avatar_url":"https://github.com/bartoszgolek.png","language":"C#","funding_links":[],"categories":["Frameworks, Libraries and Tools","框架, 库和工具"],"sub_categories":["Misc","大杂烩"],"readme":"# NFlags\n\n[![Build Status](https://travis-ci.org/bartoszgolek/NFlags.svg?branch=master)](https://travis-ci.org/bartoszgolek/NFlags)\n[![NuGet](https://img.shields.io/nuget/dt/NFlags.svg)](https://www.nuget.org/packages/NFlags)\n[![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/labstack/echo/master/LICENSE)\n\nSimple yet powerfull library to made parsing CLI arguments easy. \nLibrary also allow to print usage help and application version \"out of box\".\n\nFor example of usage check **Examples** directory.\n\n## QuickStart\n\n1. Install NFLags from NuGet.\n1. Start new console project.\n1. Configure NFLags:\n```c#\nCli.Configure(configure =\u003e configure\n    .SetDialect(Dialect.Gnu)\n    .SetName(\"QuickStart\")\n    .SetDescription(\"This is NFlags\")\n    .EnableVersionOption()\n)\n.Root(rc =\u003e rc\n    .RegisterFlag(\"flag1\", \"f\", \"Flag description\", false)\n    .RegisterOption(\"option\", \"o\", \"Option description\", \"optionDefaultValue\")\n    .RegisterParameter(\"param\", \"Param description\", \"ParamDefaultValue\")\n    .RegisterCommand(\"subcommand\", \"Subcommand Description\", sc =\u003e sc\n            .SetExecute((commandArgs, output) =\u003e output.WriteLine(\"This is subcommand: \" + commandArgs.GetParameter\u003cstring\u003e(\"SubParameter\")))\n            .RegisterParameter(\"SubParameter\", \"SubParameter description\", \"SubParameterValue\")\n    )\n    .RegisterParamSeries(\"paramSeries\", \"paramSeriesDescription\")\n    .SetExecute((commandArgs, output) =\u003e output.WriteLine(\"This is root command: \" + commandArgs.GetParameter\u003cstring\u003e(\"param\")))\n).\nRun(args);\n```\nRun application and enjoy:\n```\n$\u003e dotnet NFlags.QuickStart.dll\nThis is root command: ParamDefaultValue%\n$\u003e dotnet NFlags.QuickStart.dll xxx\nThis is root command: xxx\n$\u003e dotnet NFlags.QuickStart.dll --help\nUsage:\n        QuickStart [COMMAND] [OPTIONS]... [PARAMETERS]...\n\nThis is NFlags\n\n        Commands:\n        command Sub command Description\n\n        Parameters:\n        \u003cparam\u003e Param description (Default: 'ParamDefaultValue')\n        \u003cparamSeries...\u003e        paramSeriesDescription\n\n        Options:\n        --flag1, -f     Flag description\n        --option \u003coption\u003e, -o \u003coption\u003e  Option description (Default: 'optionDefaultValue')\n        --help, -h      Prints this help\n        --version, -v      Prints application version\n\n\n\n$\u003e dotnet NFlags.QuickStart.dll subcommand\nThis is subcommand: SubParameterValue\n$\u003e dotnet NFlags.QuickStart.dll subcommand yyy\nThis is subcommand: yyy\n$\u003e dotnet NFlags.QuickStart.dll command --help\nUsage:\n        QuickStart command [OPTIONS]... [PARAMETERS]...\n\nThis is NFlags\n\n        Parameters:\n        \u003cParameter\u003e     Sub parameter description (Default: 'SubParameterValue')\n\n        Options:\n        --help, -h      Prints this help\n        --version, -v      Prints application version\n\n$\u003e \n\n```\n\n## Documentation\n\n[See details on NFlags GitHub pages](https://bartoszgolek.github.io/NFlags/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartoszgolek%2FNFlags","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbartoszgolek%2FNFlags","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbartoszgolek%2FNFlags/lists"}