{"id":31847065,"url":"https://github.com/awinecki/magicfile","last_synced_at":"2026-03-01T13:01:18.460Z","repository":{"id":40518449,"uuid":"303166748","full_name":"awinecki/magicfile","owner":"awinecki","description":"Simple Makefile template for documenting frequent commands.","archived":false,"fork":false,"pushed_at":"2022-06-26T14:39:18.000Z","size":632,"stargazers_count":52,"open_issues_count":1,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-12T09:19:19.320Z","etag":null,"topics":["bash","makefile","makefile-template"],"latest_commit_sha":null,"homepage":"","language":"Makefile","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/awinecki.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":"2020-10-11T16:43:13.000Z","updated_at":"2024-12-17T10:44:28.000Z","dependencies_parsed_at":"2022-07-26T06:30:07.525Z","dependency_job_id":null,"html_url":"https://github.com/awinecki/magicfile","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/awinecki/magicfile","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awinecki%2Fmagicfile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awinecki%2Fmagicfile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awinecki%2Fmagicfile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awinecki%2Fmagicfile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/awinecki","download_url":"https://codeload.github.com/awinecki/magicfile/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/awinecki%2Fmagicfile/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29969700,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T12:56:10.327Z","status":"ssl_error","status_checked_at":"2026-03-01T12:55:24.744Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["bash","makefile","makefile-template"],"created_at":"2025-10-12T09:18:53.853Z","updated_at":"2026-03-01T13:01:18.187Z","avatar_url":"https://github.com/awinecki.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Magicfile ✨\n\n![screenshot](./screenshot-make.png)\n\nSimple `Makefile` template for situations when:\n\n- You just need a simple way to document frequently used commands\n- Don't want to create multiple `.sh` files just to document one-off CLI commands\n- Want to easily share commands with your colleagues\n\n## Installation\n\n```\ncurl https://raw.githubusercontent.com/awinecki/magicfile/main/Makefile \u003e Makefile\n```\n\n## Features\n\n1. Type `make` to display nice help and list available commands\n2. Display command descriptions nicely\n3. Checks for validating env setup, env vars, params required for commands\n4. Template for commands\n5. Example how to use make commands with params (`make command param=value`)\n6. Example how to use default params\n\n# Usage \u0026 Tips\n\nAdd regular `make` commands. Some tips:\n\n- Splitting commands on multiple lines is problematic in makefiles, but can be done with `\\`\n\n  ```shell\n  check-param: # [CHECK] Checks if param is present: make key=value\n  \t@if [ \"$(target)\" = \"\" ]; then \\\n  \t\techo -e \"${ERR}Missing param: target. Try: 'make cmd target=..'${NC}\"; \\\n  \t\texit 1; \\\n  \tfi\n  \n  vs.\n  \n  check-param: # [CHECK] Checks if param is present: make key=value\n  \t@if [ \"$(target)\" = \"\" ]; then echo -e \"${ERR}Missing param: target. Try: 'make cmd target=..'${NC}\"; exit 1; fi\n  ```\n\n- Add `@` in front of a command to prevent make from printing it\n\n  ```\n  echo \"Hello World\"\n  \n  vs.\n  \n  @echo \"Hello World\"\n  ```\n\n- Add checks as make required targets\n\n  ```\n  deploy: check-local-setup\n    @deploy..\n    \n  check-local-setup:\n  \t@if test ...\n  \t@if test ...\n  ```\n\n# Demo\n\n[![asciicast](https://asciinema.org/a/eisdss6ueJFZ2jqwlWPGjMbGr.svg)](https://asciinema.org/a/eisdss6ueJFZ2jqwlWPGjMbGr)\n\n## That's it!\n\nHope you find this useful! 🙌\n\nIf you have any questions or improvement ideas, please contact me 🙃.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawinecki%2Fmagicfile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fawinecki%2Fmagicfile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fawinecki%2Fmagicfile/lists"}