{"id":50344932,"url":"https://github.com/gregod-com/grgd","last_synced_at":"2026-05-29T19:03:52.424Z","repository":{"id":46766829,"uuid":"197807069","full_name":"gregod-com/grgd","owner":"gregod-com","description":"go package for grgd cli","archived":false,"fork":false,"pushed_at":"2022-10-25T11:50:32.000Z","size":2188,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-30T14:46:43.701Z","etag":null,"topics":["cli","command-line-tool","go","golang","urfave-cli"],"latest_commit_sha":null,"homepage":"","language":"Go","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/gregod-com.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-19T16:19:24.000Z","updated_at":"2022-10-25T11:36:30.000Z","dependencies_parsed_at":"2023-01-20T09:48:05.061Z","dependency_job_id":null,"html_url":"https://github.com/gregod-com/grgd","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/gregod-com/grgd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregod-com%2Fgrgd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregod-com%2Fgrgd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregod-com%2Fgrgd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregod-com%2Fgrgd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gregod-com","download_url":"https://codeload.github.com/gregod-com/grgd/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gregod-com%2Fgrgd/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33666291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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","command-line-tool","go","golang","urfave-cli"],"created_at":"2026-05-29T19:03:52.354Z","updated_at":"2026-05-29T19:03:52.417Z","avatar_url":"https://github.com/gregod-com.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![main pipeline](https://github.com/gregod-com/grgd/actions/workflows/go.yml/badge.svg) [![GitHub go.mod Go version of a Go module](https://img.shields.io/github/go-mod/go-version/gregod-com/grgd.svg)](https://github.com/gregod-com/grgd) [![GoReportCard](https://goreportcard.com/badge/github.com/gregod-com/grgd)](https://goreportcard.com/report/github.com/gregod-com/grgd) [![GitHub license](https://img.shields.io/github/license/gregod-com/grgd)](https://github.com/gregod-com/grgd/blob/master/LICENSE)\n\n# grgd\n\n\u003e go package for grgd\n\ngrgd is a cli framework extending \"github.com/urfave/cli\" with user, project and service definitions. Create your own powerful cli with persistence.\n\n## Getting started\n\nTest the embeded example cli:\n\n```shell\ngo run example/main.go\n```\n\nHere you should say what actually happens when you execute the code above.\n\n```bash\n\n                                            _          version   0.0.1                         |\n   ___  __  __   __ _   _ __ ___    _ __   | |   ___   profile   gregor                        |\n  / _ \\ \\ \\/ /  / _` | | '_ ` _ \\  | '_ \\  | |  / _ \\  project   examplestack                      |\n |  __/  \u003e  \u003c  | (_| | | | | | | | | |_) | | | |  __/  grgdDir   /Users/gregor/.grgd           |\n  \\___| /_/\\_\\  \\__,_| |_| |_| |_| | .__/  |_|  \\___|  hackDir   /Users/gregor/.grgd/hack      |\n                                   |_|                 |\n\nexample [global options] command [command options] [arguments...]\nCOMMANDS:\n  /// group-1 \\\\\\\n      my-commands-group-1  -\u003e  do some stuff\n\n  /// settings \\\\\\\n      update               -\u003e  Check and load updates\n      profile              -\u003e  Configuration for profiles\n      project              -\u003e  Configuration for projects\n      service              -\u003e  Configuration for services\n\n  Flags:\n      --profile value, -p value  (default: \"gregor\") [$USER]\n      --log-level value          (default: \"info\")\n      --version, -v              print the version (default: false)\n\n```\n\n### Initial Configuration\n\ngrgd uses an extendable persistence backend to configure your profiles, projects and services. Per default a sqlite DB is used and safed at ~/.grgd/\n\n## Developing\n\nTo start your own implementation define which dependecies you want to rewrite and which you want to reuse:\n\n```go\nfunc main() {\n\tlog := logger.ProvideLogrusLogger()\n\tdependecies := map[string]interface{}{\n\t\t\"ILogger\":     logger.ProvideLogrusLogger,\n\t\t\"IConfig\":     config.ProvideConfig,\n\t\t\"IHelper\":     helper.ProvideHelper,\n\t\t\"INetworker\":  helper.ProvideNetworker,\n\t\t\"IDAL\":        gormdal.ProvideDAL,\n\t\t\"IProfile\":    profile.ProvideProfile,\n\t\t\"IUIPlugin\":   view.ProvideFallbackUI,\n\t\t\"my-commands\": ProvideCommands,\n\t}\n\tcore, err := core.RegisterDependecies(dependecies)\n\tif err != nil {\n\t\tlog.Fatalf(\"Error with register dependencies: %s\", err.Error())\n\t}\n\n\tgrgd.NewApp(core, \"example\", \"0.0.1\", nil)\n}\n```\n\nFeel free to add any function pointers to the list of dependencies. In this example the key `my-commands` is added with the value of pointer to function that returns customized commands.\n\n```go\n\t\t\"my-commands\": ProvideCommands,\n```\n\n### Building\n\nRun go build:\n\n```shell\ngo build -o myapp *.go\n```\n\n\u003c!-- ### Deploying / Publishing\n\nIn case there's some step you have to take that publishes this project to a\nserver, this is the right time to state it.\n\n```shell\npackagemanager deploy awesome-project -s server.com -u username -p password\n```\n\nAnd again you'd need to tell what the previous code actually does. --\u003e\n\n## Features\n\n\u003c!-- - What's the main functionality\n- You can also do another thing\n- If you get really randy, you can even do this --\u003e\n\n## Configuration\n\n\u003c!-- Here you should write what are all of the configurations a user can enter when\nusing the project. --\u003e\n\n## Contributing\n\n\"If you'd like to contribute, please fork the repository and use a feature\nbranch. Pull requests are warmly welcome.\"\n\n## Links\n\n\u003c!-- - Project homepage: https://your.github.com/awesome-project/ --\u003e\n\n- Repository: https://github.com/gregod-com/grgd\n- Issue tracker: https://github.com/gregod-com/grgd/issues\n- Related projects:\n  - urfave cli: https://github.com/urfave/cli\n\n## Licensing\n\n\"The code in this project is licensed under MIT license.\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregod-com%2Fgrgd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregod-com%2Fgrgd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregod-com%2Fgrgd/lists"}