{"id":20465793,"url":"https://github.com/enrise/taskfile","last_synced_at":"2025-04-13T08:44:01.829Z","repository":{"id":68162395,"uuid":"536581609","full_name":"Enrise/Taskfile","owner":"Enrise","description":"A ./Taskfile is a task runner in plain and easy Bash. It adds a list of available tasks to your project.","archived":false,"fork":false,"pushed_at":"2025-03-18T13:47:14.000Z","size":564,"stargazers_count":8,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"production","last_synced_at":"2025-03-27T00:22:42.200Z","etag":null,"topics":["automation","bash","cli","makefile","task-runner","taskfile"],"latest_commit_sha":null,"homepage":"https://taskfile.sh","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Enrise.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","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":"2022-09-14T13:06:05.000Z","updated_at":"2025-03-18T13:47:13.000Z","dependencies_parsed_at":"2024-11-22T22:17:53.427Z","dependency_job_id":"e2872562-fdae-495a-809b-13b8611053b4","html_url":"https://github.com/Enrise/Taskfile","commit_stats":null,"previous_names":["enrise/taskfile"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enrise%2FTaskfile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enrise%2FTaskfile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enrise%2FTaskfile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enrise%2FTaskfile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Enrise","download_url":"https://codeload.github.com/Enrise/Taskfile/tar.gz/refs/heads/production","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248687739,"owners_count":21145760,"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":["automation","bash","cli","makefile","task-runner","taskfile"],"created_at":"2024-11-15T13:19:51.208Z","updated_at":"2025-04-13T08:44:01.823Z","avatar_url":"https://github.com/Enrise.png","language":"TypeScript","readme":"# Taskfile ([taskfile.sh](https://taskfile.sh))\n\nA `./Taskfile` is a task runner in plain and easy [Bash](https://nl.wikipedia.org/wiki/Bash). It adds a list of\navailable tasks to your project.\n\nGenerate your own Taskfile at [taskfile.sh](https://taskfile.sh).\n\n[![CLI Taskfile preview](public/cli-preview.gif)](https://taskfile.sh)\n\n## Why\n\n- Works on any OS (any bash terminal)\n- A uniform way to run your projects\n- Very easy to use\n- Automate your most common tasks (updating, starting, building, etc...)\n- Easy to understand and maintain\n- Automatically generated list of available task\n\n# How does it work?\n\nTaskfiles are simple bash scripts, but an easy-to-read function format. There are some things that we need to explain\nfor our Taskfile setup. It all starts with a `Taskfile`. Download your `Taskfile` from\n[taskfile.sh](https://taskfile.sh) and save it. Make sure the Taskfile is executable: `chmod +x ./Taskfile`. You can now\nrun `./Taskfile` in your terminal.\n\n## Tasks\n\nA task is defined by creating a function that starts with `task:`. This defines a task that can be triggered by running\nthe `./Taskfile`. Right next to the task, you should add a task definition with two hashes. This will let the\n`task:help` function know that you're writing the task function definition. So an example task will look like the\nfollowing:\n\n```shell\nfunction task:example { ## Show some example text\n    title \"Example\"\n    echo \"This is an example task.\"\n}\n```\n\nIn a task you can call other functions, and run all tooling you desire. Now running `./Taskfile example` will execute\nthe new task.\n\n## Sections\n\nTo group multiple tasks, sections can be created in your Taskfile. A section is created by creating a comment line with\na double hashtag like so:\n\n```shell\n## Project section\n```\n\nLines with only a single `#` will not appear as section in `task:help` and can be seen as plain comments.\n\n## Help command\n\nRunning `./Taskfile help`, the `task:help` function is triggered. This task will list all available sections and tasks\nusing the double `##` comments you've learned about above. Now it's clear how you can run any other task!\n\n# Auto-completion\n\nAutocompletion works when you use `zsh` and `oh-my-zsh`. Create the following file in your oh-my-zsh directory\n`~/.oh-my-zsh/completions/_task.zsh`:\n\n```shell\n#compdef task\n\n_task() {\n\tlocal -a commands\n\tlocal tasks=$(task comp_targets)\n\n\twhile IFS= read -r line; do\n\t\tif [[ -n \"$line\" ]]; then\n\t\t\tcommands+=(\"$line\")\n\t\tfi\n\tdone \u003c\u003c\u003c \"$tasks\"\n\n\t_describe -t commands 'task commands' commands\n}\n\n_task \"$@\"\n```\n\nNow after running `task shorthand`, your `task` commands will get autocompleted.\n\n# Credits\n\nThis Taskfile setup is based on [Adrian Cooney's Taskfile](https://github.com/adriancooney/Taskfile) and is widely\nadopted by [Enrise](https://enrise.com) in our modified flavour.\n\n# Contributors\n\nA big thanks to all the contributors of Taskfile!\n\n![contirubtor avatars](https://contrib.rocks/image?repo=enrise/taskfile)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenrise%2Ftaskfile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenrise%2Ftaskfile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenrise%2Ftaskfile/lists"}