{"id":19808660,"url":"https://github.com/HeyMegabyte/Bodega","last_synced_at":"2025-05-01T07:32:37.967Z","repository":{"id":38027598,"uuid":"446283824","full_name":"megabyte-labs/Bodega","owner":"megabyte-labs","description":"😉 A gorgeous, feature-packed drop-in replacement for the go-task project 🔥🔥🔥","archived":false,"fork":false,"pushed_at":"2023-03-23T13:07:50.000Z","size":9832,"stargazers_count":6,"open_issues_count":7,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-09-18T01:34:34.193Z","etag":null,"topics":["automation","cli","go","go-lang","golang","mblabs","megabytelabs","professormanhattan","terminal","washingtondc"],"latest_commit_sha":null,"homepage":"https://megabyte.space","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/megabyte-labs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"docs/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"docs/CODEOWNERS","security":null,"support":null},"funding":{"github":"ProfessorManhattan","open_collective":"megabytelabs","patreon":"ProfessorManhattan","custom":["donate.givedirectly.org"]}},"created_at":"2022-01-10T04:48:18.000Z","updated_at":"2024-03-25T09:54:59.000Z","dependencies_parsed_at":"2023-01-23T12:15:13.892Z","dependency_job_id":null,"html_url":"https://github.com/megabyte-labs/Bodega","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megabyte-labs%2FBodega","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megabyte-labs%2FBodega/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megabyte-labs%2FBodega/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/megabyte-labs%2FBodega/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/megabyte-labs","download_url":"https://codeload.github.com/megabyte-labs/Bodega/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224245870,"owners_count":17279649,"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","cli","go","go-lang","golang","mblabs","megabytelabs","professormanhattan","terminal","washingtondc"],"created_at":"2024-11-12T09:14:28.578Z","updated_at":"2025-05-01T07:32:32.448Z","avatar_url":"https://github.com/megabyte-labs.png","language":"Go","funding_links":["https://github.com/sponsors/ProfessorManhattan","https://opencollective.com/megabytelabs","https://patreon.com/ProfessorManhattan","donate.givedirectly.org","https://www.patreon.com/ProfessorManhattan"],"categories":[],"sub_categories":[],"readme":"\u003c!-- ⚠️ This README has been generated from the file(s) \".config/docs/blueprint-readme-cli.md\" ⚠️--\u003e\u003cdiv align=\"center\"\u003e\n  \u003ccenter\u003e\n    \u003ca href=\"https://github.com/megabyte-labs/Bodega\"\u003e\n      \u003cimg width=\"148\" height=\"148\" alt=\"Bodega logo\" src=\"https://gitlab.com/megabyte-labs/go/cli/bodega/-/raw/master/logo.png\" /\u003e\n    \u003c/a\u003e\n  \u003c/center\u003e\n\u003c/div\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ccenter\u003e\u003ch1 align=\"center\"\u003e\u003ci\u003e\u003c/i\u003eBodega - Your Go-To Task Runner\u003ci\u003e\u003c/i\u003e\u003c/h1\u003e\u003c/center\u003e\n  \u003ccenter\u003e\u003ch4 style=\"color: #18c3d1;\"\u003e\u003ci\u003e\u003c/i\u003e\u003ca href=\"https://megabyte.space\" target=\"_blank\"\u003eMegabyte Labs\u003c/a\u003e\u003c/h4\u003e\u003ci\u003e\u003c/i\u003e\u003c/center\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://megabyte.space\" title=\"Megabyte Labs homepage\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Homepage\" src=\"https://img.shields.io/website?down_color=%23FF4136\u0026down_message=Down\u0026label=Homepage\u0026logo=home-assistant\u0026logoColor=white\u0026up_color=%232ECC40\u0026up_message=Up\u0026url=https%3A%2F%2Fmegabyte.space\u0026style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/megabyte-labs/Bodega/blob/master/docs/CONTRIBUTING.md\" title=\"Learn about contributing\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Contributing\" src=\"https://img.shields.io/badge/Contributing-Guide-0074D9?logo=github-sponsors\u0026logoColor=white\u0026style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://app.slack.com/client/T01ABCG4NK1/C01NN74H0LW/details/\" title=\"Chat with us on Slack\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Slack\" src=\"https://img.shields.io/badge/Slack-Chat-e01e5a?logo=slack\u0026logoColor=white\u0026style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"link.gitter\" title=\"Chat with the community on Gitter\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Gitter\" src=\"https://img.shields.io/gitter/room/megabyte-labs/community?logo=gitter\u0026logoColor=white\u0026style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/megabyte-labs/Bodega\" title=\"GitHub mirror\" target=\"_blank\"\u003e\n    \u003cimg alt=\"GitHub\" src=\"https://img.shields.io/badge/Mirror-GitHub-333333?logo=github\u0026style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://gitlab.com/megabyte-labs/go/cli/bodega\" title=\"GitLab repository\" target=\"_blank\"\u003e\n    \u003cimg alt=\"GitLab\" src=\"https://img.shields.io/badge/Repo-GitLab-fc6d26?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAHJJREFUCNdNxKENwzAQQNEfWU1ZPUF1cxR5lYxQqQMkLEsUdIxCM7PMkMgLGB6wopxkYvAeI0xdHkqXgCLL0Beiqy2CmUIdeYs+WioqVF9C6/RlZvblRNZD8etRuKe843KKkBPw2azX13r+rdvPctEaFi4NVzAN2FhJMQAAAABJRU5ErkJggg==\u0026style=for-the-badge\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\u003cbr/\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca title=\"Version: 11.0.0\" href=\"https://github.com/megabyte-labs/Bodega\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Version: 11.0.0\" src=\"https://img.shields.io/badge/version-11.0.0-blue.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAACNJREFUCNdjIACY//+BEp9hhM3hAzYQwoBIAqEDYQrCZLwAAGlFKxU1nF9cAAAAAElFTkSuQmCC\u0026cacheSeconds=2592000\u0026style=flat-square\" /\u003e\n  \u003c/a\u003e\n  \u003ca title=\"Go version: goVersion\" href=\"https://github.com/megabyte-labs/Bodega/blob/master/go.mod\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Go version: goVersion\" src=\"https://img.shields.io/github/go-mod/go-version/profile.github}}/{{slug?logo=go\u0026logoColor=white\u0026style=flat-square\" /\u003e\n  \u003c/a\u003e\n  \u003ca title=\"GitLab build status\" href=\"https://gitlab.com/megabyte-labs/go/cli/bodega/-/commits/master\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Build status\" src=\"https://img.shields.io/gitlab/pipeline-status/megabyte-labs/ansible-roles/galaxy_info.role_name?branch=master\u0026label=build\u0026logo=gitlab\u0026style=flat-square\" /\u003e\n  \u003c/a\u003e\n  \u003ca title=\"Documentation\" href=\"https://megabyte.space/docs/go\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-yes-brightgreen.svg?logo=readthedocs\u0026style=flat-square\" /\u003e\n  \u003c/a\u003e\n  \u003ca title=\"License: MIT\" href=\"https://github.com/megabyte-labs/Bodega/blob/master/LICENSE\" target=\"_blank\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/badge/license-MIT-yellow.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgAQMAAABJtOi3AAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAAHpJREFUCNdjYOD/wMDAUP+PgYHxhzwDA/MB5gMM7AwMDxj4GBgKGGQYGCyAEEgbMDDwAAWAwmk8958xpIOI5zKH2RmOyhxmZjguAiKmgIgtQOIYmFgCIp4AlaQ9OczGkJYCJEAGgI0CGwo2HmwR2Eqw5SBnNIAdBHYaAJb6KLM15W/CAAAAAElFTkSuQmCC\u0026style=flat-square\" /\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003e \u003cbr/\u003e\u003ch4 align=\"center\"\u003e**A gorgeous, feature-packed drop-in replacement for the [go-task/task](https://github.com/go-task/task) project**\u003c/h4\u003e\u003cbr/\u003e\n\n\u003c!--TERMINALIZE![terminalizer_title](https://gitlab.com/megabyte-labs/go/cli/bodega/-/raw/master/docs/demo.gif)TERMINALIZE--\u003e\n\n\u003ca href=\"#table-of-contents\" style=\"width:100%\"\u003e\u003cimg style=\"width:100%\" src=\"https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png\" /\u003e\u003c/a\u003e\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n  - [Prompt](#prompt)\n  - [Initial Shell Script](#initial-shell-script)\n  - [Hide tasks from being listed](#hide-tasks-from-being-listed)\n  - [Initial Status](#initial-status)\n  - [Stop commands before execution](#stop-commands-before-execution)\n  - [Aliases](#aliases)\n  - [More output messages](#more-output-messages)\n  - [Interactive Prompt](#interactive-prompt)\n  - [Fancy listing](#fancy-listing)\n  - [Output custom messages on task success/failure](#output-custom-messages-on-task-successfailure)\n  - [[WIP] Progress bar](#wip-progress-bar)\n- [Installation](#installation)\n  - [Quick Method](#quick-method)\n  - [Compile Program with Go](#compile-program-with-go)\n  - [NPM Install Method](#npm-install-method)\n  - [Pre-Built Binary](#pre-built-binary)\n- [Usage](#usage)\n  - [Man Page](#man-page)\n- [Contributing](#contributing)\n- [License](#license)\n\n\u003ca href=\"#overview\" style=\"width:100%\"\u003e\u003cimg style=\"width:100%\" src=\"https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png\" /\u003e\u003c/a\u003e\n\n## Overview\n\n**Bodega** is an improved version of [go-task](https://github.com/go-task/task) that brings a slew of new features and improvements. It adds powerful UX features and functional improvements while retaining backwards compatibility. For those of you who do not know, Task is a task runner / Make alternative written in Go. It allows you to define bash script snippets in YML files and provides some advanced features. Some of the features it includes is the ability to define dependencies, running tasks conditionally, caching values, and a built-in method of housing CLI documentation. **Bodega** takes go-task to the next level by improving the TUI experience and including features that allow you to use the project as a CLI-generator.\n\n\u003ca href=\"#features\" style=\"width:100%\"\u003e\u003cimg style=\"width:100%\" src=\"https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png\" /\u003e\u003c/a\u003e\n\n## Features\n\n### Prompt\n\nA prompt field provides an interactive method of getting user data.\nIn addition, it controls execution with the `validate` sub-field\nwhich, on correct input, executes the task `answer`.\nThe user's selection (or input) is available as the .ANSWER template variable\n\n```yaml\n---\nversion: '3'\n\ntasks:\n  test_prompt:\n    vars:\n      TEST: 'string'\n    prompt:\n      # available types:\n      # multiline, multi_select, select, password, confirm, input\n      type: input\n      message: What day is it?\n      # The options sub-field is used with propmpts of type select and multi_select\n      # options:\n      #   - msg: Sunday\n      #   - Tuesday\n      # The following is a dynamic option\n      #   - msg:\n      #       sh: date +%A\n      validate:\n        sh: '[[ \".ANSWER\" == \"Tuesday\" ]]'\n      answer:\n        desc: 'a task executed on valid input only'\n        cmds:\n          - echo \"successfully executing the answer task\"\n```\n\n### Initial Shell Script\n\nThe field `shell_rc` is used to load common shell scripts or functions.\nIt can be specified both globally (on the Taskfile level) and locally\n(on each individual task). Commands inside each task loads the\n`shell_rc` field before exeution.\n\n```yaml\n---\nversion: '3'\n\nshell_rc: |\n  func(){\n    echo \"global function called!\"\n  }\n\ntasks:\n  init-script-global:\n    desc: Testing a local shell_rc field\n    cmds:\n      - echo \"trying out the global shell_rc field\"\n      - func\n\n  init-script:\n    desc: Testing a local shell_rc field\n    shell_rc: |\n      export VAR_INSIDE_INIT_SCRIPT=\"Hello from init script\"\n      func(){\n        echo \"local function called!\"\n      }\n    cmds:\n      - echo \"This is a var inside init_script $VAR_INSIDE_INIT_SCRIPT\"\n      - func\n      - sleep 2 # doing some work\n```\n\n### Hide tasks from being listed\n\nThe `hide` field allows a task to not be listed with task --list\nIt can be also templated using Go templates\n\n\u003e remember that Go is strongly typed. comparison must be done between equal types\n\u003e use double quotes for literals inside templates\n\n```yaml\n---\nversion: '3'\n\ntasks:\n  error-with-hide:\n    desc: A hidden task that exits with an errors\n    vars:\n      CGO_ENABLED: 'true'\n    hide: '{{if eq .CGO_ENABLED \"true\"}} true else false end'\n    # hide: true\n    cmds:\n      - echo \"text\"\n      - exit 1\n      - echo \"unreachable\"\n```\n\n### Initial Status\n\nThe `initial_status` boolean field allows a task to be executed\nonce if the `status` has been successfully executed once.\nAn `initial_status` without a `status` is simple ignored\n\n```yaml\n---\nversion: '3'\n\ntasks:\n  default:\n    cmds:\n      - generate-files\n      - rm -rf directory/\n      - generate-files\n\n  generate-files:\n    desc: Generate files diescription\n    cmds:\n      - mkdir directory\n      - touch directory/file1.txt\n      - touch directory/file2.txt\n    # test existence of files\n    status:\n      - test -d directory\n      - test -f directory/file1.txt\n      - test -f directory/file2.txt\n    initial_status: true\n```\n\nOn running `task default` from the command line, only the first execution of task `generate-files` is done\n\n### Stop commands before execution\n\nPassing the `--debug` makes Task stop before each command execution, even for commands within a variable.\n\n```shell\n$ task --debug simple\ntask: [simple] echo 'hi'\nExecuting a shell command. Type enter to continue\n\nhi\n```\n\n### Aliases\n\nFrom the command line, you may call a task by its alias instead of its name\n\n```yaml\n---\nversion: '3'\n\ntasks:\n  echo-with-errors-ignored:\n    desc: Echoes a string but with errors ignored\n    # Try calling the task from the command line as `task hello`\n    alias: hello\n    cmds:\n      - cmd: exit 1\n        ignore_error: true\n      - echo \"Hello World\"\n```\n\nOn the command line type `task hello` to execute the task\n\n### More output messages\n\nRunning `task` with more `-v`s produces more verbose output\n\n| Option | Effect                                          |\n| ------ | ----------------------------------------------- |\n| `-v`   | Output each command executed, task running time |\n| `-vv`  | Output execution time of each command           |\n\n### Interactive Prompt\n\nExecuting `task` spawns a REPL-like shell by default. If you would like to execute the default task, please do `task default`\n\n```\nuser@user:$ task\nType 'help' for a list of commands or 'quit' to exit\ntask\u003e --list\n\n   Tasks\n\n              TASK           │ ALIAS │          DESCRIPTION\n  ───────────────────────────┼───────┼─────────────────────────────────\n    echo-with-errors-ignored │ hello │ Echoes a string but with\n                             │       │ errors ignored\n    generate-files           │       │ Generate files diescription\n    init-script              │       │ Testing the new shell_rc field\n    simple                   │       │ A simple task with no extra\n                             │       │ features\n    sleep                    │       │ zzzzzzz\n    test_prompt              │       │ tests prompt\n    test_prompt_confirm      │       │ test prompt confirm\n    test_prompt_password     │       │ test prompt password\n\ntask\u003e simple\ntask: [simple] echo \"Hello\"\nHello\ntask\u003e sleep\ntask: [sleep] sleep \"2\"\ntask\u003e ^D\nreadline error: EOF\nuser@user:$\n```\n\n### Fancy listing\n\n`task --list` uses the [list](https://github.com/charmbracelet/bubbles#list) component from bubbletea\n\n[![bubbletea_list_demo](https://asciinema.org/a/sem2Ac3yZIUJ03HTMHyOEOq7I)](https://asciinema.org/a/sem2Ac3yZIUJ03HTMHyOEOq7I)\n\n### Output custom messages on task success/failure\n\nCustomize the output message if the task successfully ran or failed. You can also define a custom message that runs before the task start.\n\n```yaml\n---\nversion: '3'\n\ntasks:\n  custom-logs:\n    run: once\n    desc: 'includes custom messages on start/stop and error'\n    cmds:\n      - echo 'hey'\n      - cmd: exit 99\n        ignore_error: true\n      - cmd: exit 12\n        ignore_error: false\n    log:\n      success: 'hello custom-logs task'\n      start: 'Log message to show before Go starts running the task logic (including env scripts)'\n      error:\n        default: 'Log message to show if the cmds return exit code 1 or greater'\n        codes: # optional!\n          - code: 12\n            message: 'code exited with error code 12'\n```\n\nIf the task exited with a particular error number, you may also tailor a speicific message for each error code with the `codes` field. Running the above task should output:\n\n```\nhello custom-logs task\ntask: [custom-logs] echo 'hey'\nhey\ntask: [custom-logs] exit 99\ntask: [custom-logs] exit 12\ncode exited with error code 12\ntask: Failed to run task \"custom-logs\": exit status 12\n\n```\n\n### [WIP] Progress bar\n\nTrach the issue [here](https://github.com/charmbracelet/bubbletea/issues/179)\n\n\u003ca href=\"#installation\" style=\"width:100%\"\u003e\u003cimg style=\"width:100%\" src=\"https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png\" /\u003e\u003c/a\u003e\n\n## Installation\n\nThere are several ways you can install this CLI. You can:\n\n1. Use our bash scripts which will handle everything automatically with as few dependencies as possible\n2. Compile the program using Go and add it to your `PATH`\n3. Install it via an NPM convienience wrapper\n4. Download the pre-built binary from the GitLab or GitHub releases page and then place it in your `PATH`\n\n### Quick Method\n\nIf you are looking to install the CLI as quickly as possible then you can run the following script which will install the binary to your `/usr/local/bin` folder on macOS or Linux:\n\n```\ncurl -sS https://install.doctor/task | bash\n```\n\nOr, if you are on Windows, you can install it by running:\n\n```\nSet-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://install.doctor/task?os=win'))\n```\n\n### Compile Program with Go\n\nYou can install the CLI by compiling it from the source as long as you have a recent version of Go installed:\n\n```\ngit clone https://github.com/megabyte-labs/Bodega.git\ncd {{#withLast (split repository.github \"/\")}}this/withLast\ngo build -o dist/task cmd/task/task.go\nsudo mv ./dist/task /usr/local/bin\n```\n\nAfter you compile the program, you should then move the binary file to a location that is in your `PATH` (which is what the last line does in the snippet above).\n\n### NPM Install Method\n\nEvery release is bundled into an NPM package that you can install by running the following command:\n\n```\nnpm install -g task\n```\n\n### Pre-Built Binary\n\nIf you trust us (and you should not.. trust.. anybody.. EVER), then you can also download the binary directly from the Bodega GitLab release page or the GitHub release page. After you download the release, you will have to either place the binary somewhere in your `PATH` or run the installer (in the case of the `.deb` or `.rpm` releases, for instance).\n\n\u003ca href=\"#usage\" style=\"width:100%\"\u003e\u003cimg style=\"width:100%\" src=\"https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png\" /\u003e\u003c/a\u003e\n\n## Usage\n\nAll of the usage instructions can be found by running `task --help`. After running the command, you should be greeted with the following output:\n\n```\nUsage: task [-ilfwvsdm] [--init] [--list] [--force] [--watch] [--verbose] [--silent] [--dir] [--taskfile] [--dry] [--menu] [--summary] [--debug] [task...]\n\nRuns the specified task(s). Runs a built-in shell if no task name\nwas specified, or lists all tasks if an unknown task name was specified.\n\nExample: 'task hello' with the following 'Taskfile.yml' file will generate an\n'output.txt' file with the content \"hello\".\n\n'''\nversion: '3'\ntasks:\n  hello:\n    cmds:\n      - echo \"I am going to write a file named 'output.txt' now.\"\n      - echo \"hello\" \u003e output.txt\n    generates:\n      - output.txt\n'''\n\nOptions:\n  -c, --color             colored output. Enabled by default. Set flag to false or use NO_COLOR=1 to disable (default true)\n  -C, --concurrency int   limit number tasks to run concurrently\n      --debug             stop before each command execution\n  -d, --dir string        sets directory of execution\n      --dry               compiles and prints tasks in the order that they would be run, without executing them\n  -f, --force             forces execution even when the task is up-to-date\n  -h, --help              shows Task usage\n  -i, --init              creates a new Taskfile.yaml in the current folder\n  -l, --list              lists tasks with description of current Taskfile\n  -a, --list-all          lists tasks with or without a description\n  -m, --menu              runs an interactive listing of tasks\n  -o, --output string     sets output style: [interleaved|group|prefixed]\n  -p, --parallel          executes tasks provided on command line in parallel\n      --server            runs as a server\n  -s, --silent            disables echoing\n      --status            exits with non-zero exit code if any of the given tasks is not up-to-date\n      --summary           show summary about a task\n  -t, --taskfile string   choose which Taskfile to run. Defaults to \"Taskfile.yml\"\n      --use-tls           enable server to use TLS\n  -v, --verbose count     enables verbose mode (repeat option for more output)\n      --version           show Task version\n  -w, --watch             enables watch of the given task\n```\n\n### Man Page\n\nAlternatively, if you installed the package via NPM or an installer that set up the man page (e.g. `.deb` or `.rpm`), then you can find usage instructions by running `man task`.\n\n\u003ca href=\"#contributing\" style=\"width:100%\"\u003e\u003cimg style=\"width:100%\" src=\"https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png\" /\u003e\u003c/a\u003e\n\n## Contributing\n\nContributions, issues, and feature requests are welcome! Feel free to check the [issues page](https://github.com/megabyte-labs/Bodega/issues). If you would like to contribute, please take a look at the [contributing guide](https://github.com/megabyte-labs/Bodega/blob/master/docs/CONTRIBUTING.md).\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cb\u003eSponsorship\u003c/b\u003e\u003c/summary\u003e\n\u003cbr/\u003e\n\u003cblockquote\u003e\n\u003cbr/\u003e\nDear Awesome Person,\u003cbr/\u003e\u003cbr/\u003e\nI create open source projects out of love. Although I have a job, shelter, and as much fast food as I can handle, it would still be pretty cool to be appreciated by the community for something I have spent a lot of time and money on. Please consider sponsoring me! Who knows? Maybe I will be able to quit my job and publish open source full time.\n\u003cbr/\u003e\u003cbr/\u003eSincerely,\u003cbr/\u003e\u003cbr/\u003e\n\n**_Brian Zalewski_**\u003cbr/\u003e\u003cbr/\u003e\n\n\u003c/blockquote\u003e\n\n\u003ca title=\"Support us on Open Collective\" href=\"https://opencollective.com/megabytelabs\" target=\"_blank\"\u003e\n  \u003cimg alt=\"Open Collective sponsors\" src=\"https://img.shields.io/opencollective/sponsors/megabytelabs?logo=opencollective\u0026label=OpenCollective\u0026logoColor=white\u0026style=for-the-badge\" /\u003e\n\u003c/a\u003e\n\u003ca title=\"Support us on GitHub\" href=\"https://github.com/ProfessorManhattan\" target=\"_blank\"\u003e\n  \u003cimg alt=\"GitHub sponsors\" src=\"https://img.shields.io/github/sponsors/ProfessorManhattan?label=GitHub%20sponsors\u0026logo=github\u0026style=for-the-badge\" /\u003e\n\u003c/a\u003e\n\u003ca href=\"https://www.patreon.com/ProfessorManhattan\" title=\"Support us on Patreon\" target=\"_blank\"\u003e\n  \u003cimg alt=\"Patreon\" src=\"https://img.shields.io/badge/Patreon-Support-052d49?logo=patreon\u0026logoColor=white\u0026style=for-the-badge\" /\u003e\n\u003c/a\u003e\n\n\u003c/details\u003e\n\n\u003ca href=\"#license\" style=\"width:100%\"\u003e\u003cimg style=\"width:100%\" src=\"https://gitlab.com/megabyte-labs/assets/-/raw/master/png/aqua-divider.png\" /\u003e\u003c/a\u003e\n\n## License\n\nCopyright © 2020-2021 [Megabyte LLC](https://megabyte.space). This project is [MIT](https://gitlab.com/megabyte-labs/go/cli/bodega/-/blob/master/LICENSE) licensed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHeyMegabyte%2FBodega","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FHeyMegabyte%2FBodega","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FHeyMegabyte%2FBodega/lists"}