{"id":15366764,"url":"https://github.com/erkkah/tinyargs","last_synced_at":"2025-04-15T12:31:15.502Z","repository":{"id":84184563,"uuid":"418168814","full_name":"erkkah/tinyargs","owner":"erkkah","description":"Tiny command-line parser for C / C++","archived":false,"fork":false,"pushed_at":"2021-10-17T19:43:17.000Z","size":24,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-28T20:12:05.433Z","etag":null,"topics":["command-line","parser","tiny"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/erkkah.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-17T15:09:10.000Z","updated_at":"2024-06-11T20:51:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"8485bf3b-93fb-48e4-af42-1c68e77f0bb0","html_url":"https://github.com/erkkah/tinyargs","commit_stats":{"total_commits":20,"total_committers":1,"mean_commits":20.0,"dds":0.0,"last_synced_commit":"1c0224a19e15c01770844fa8716b82d61f1b1baf"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erkkah%2Ftinyargs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erkkah%2Ftinyargs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erkkah%2Ftinyargs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/erkkah%2Ftinyargs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/erkkah","download_url":"https://codeload.github.com/erkkah/tinyargs/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249072168,"owners_count":21208129,"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":["command-line","parser","tiny"],"created_at":"2024-10-01T13:19:45.955Z","updated_at":"2025-04-15T12:31:15.474Z","avatar_url":"https://github.com/erkkah.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build and test](https://github.com/erkkah/tinyargs/actions/workflows/build.yml/badge.svg)](https://github.com/erkkah/tinyargs/actions/workflows/build.yml)\n[![Scc Count Badge](https://sloc.xyz/github/erkkah/tinyargs?category=code)](https://github.com/boyter/scc/)\n\n# tinyargs\n\nAnother commandline argument parser for C / C++.\n\nThis one is tiny, source only, and builds cleanly with `-Wall -pedantic` under C99 and C++11 on macOS, Linux and Windows.\n\nSee [header file](args.h) for reference docs.\n\nExample use:\n```C\n#include \"args.h\"\n#include \u003cstdio.h\u003e\n\nint main(int argc, const char** argv) {\n    static OPTDEFS(opts,\n                   INTOPT(\"blurgAmount\", \"9\"),\n                   FLOATOPT(\"fudgeRatio\", \"-2.33\"),\n                   STRINGOPT(\"trunkPrefix\", \"-=-\"),\n                   BOOLOPT(\"help\"));\n\n    if (!parseArgs(\u0026argc, \u0026argv, opts)) {\n        printf(\"Invalid option \\\"%s\\\".\\n\\n\", argv[argc]);\n        printf(\n            \"Usage: %s [options] [args]\\n\\n\"\n            \"Options:\\n\\n%s\\n\",\n            argv[0],\n            listOptions(opts));\n        return 42;\n    }\n\n    printf(\"Will operate on: [\\n\");\n    for (int i = 0; i \u003c argc; i++) {\n        printf(\"\\t%s\\n\", argv[i]);\n    }\n    printf(\"]\\n\");\n\n    printf(\n        \"with a blurgAmount of %d, \"\n        \"a fudgeRatio of %f, \"\n        \"using trunkPrefix: %s, \"\n        \"%shelp requested.\\n\",\n        getIntOption(opts, \"blurgAmount\"),\n        getFloatOption(opts, \"fudgeRatio\"),\n        getStringOption(opts, \"trunkPrefix\"),\n        getBoolOption(opts, \"help\") ? \"\" : \"no \");\n}\n```\n\n```\n$ ./example -fudgeRatio=3.14 -help A B C\nWill operate on: [\n\tA\n\tB\n\tC\n]\nwith a blurgAmount of 9, a fudgeRatio of 3.140000, using trunkPrefix: -=-, help requested.\n```\n\n```\n$ ./example -notAnOption=66\nInvalid option \"-notAnOption=66\".\n\nUsage: ./example [options] [args]\n\nOptions:\n\n-blurgAmount=\u003cint\u003e      (default=9)\n-fudgeRatio=\u003cfloat\u003e     (default=-2.330000)\n-trunkPrefix=\u003cstring\u003e   (default=\"-=-\")\n-help\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferkkah%2Ftinyargs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ferkkah%2Ftinyargs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ferkkah%2Ftinyargs/lists"}