{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "(build): Build the project using the build script defined in `package.json`",
      "type": "shell",
      "command": "bash start.sh && task build"
    },
    {
      "label": "(clean): Removes optional folders that are cached during various tasks",
      "type": "shell",
      "command": "bash start.sh && task clean"
    },
    {
      "label": "(commit): Lint staged files, report spelling errors, and open a _required_ commit dialoge",
      "type": "shell",
      "command": "bash start.sh && task commit"
    },
    {
      "label": "(fix): Run code auto-fixers / auto-formatters",
      "type": "shell",
      "command": "bash start.sh && task fix"
    },
    {
      "label": "(init): Runs the initialization script",
      "type": "shell",
      "command": "bash start.sh && task init"
    },
    {
      "label": "(jumpusb): Creates a JumpUSB (https://jumpusb.com)",
      "type": "shell",
      "command": "bash start.sh && task jumpusb"
    },
    {
      "label": "(lint): Lints the project using all linters",
      "type": "shell",
      "command": "bash start.sh && task lint"
    },
    {
      "label": "(livereload): Start the project with live-reloading (i.e. watch mode)",
      "type": "shell",
      "command": "bash start.sh && task livereload"
    },
    {
      "label": "(preload): Set up your workstation in advance by installing commonly used programs",
      "type": "shell",
      "command": "bash start.sh && task preload"
    },
    {
      "label": "(prepare): Prepares the project for the normal start command",
      "type": "shell",
      "command": "bash start.sh && task prepare"
    },
    {
      "label": "(publish): Publish a semantic release via `semantic-release`",
      "type": "shell",
      "command": "bash start.sh && task publish"
    },
    {
      "label": "(reset): Resets the project by removing all caches and then re-generating templated files",
      "type": "shell",
      "command": "bash start.sh && task reset"
    },
    {
      "label": "(scripts): Run and view descriptions for `npm scripts` via an interactive dialog",
      "type": "shell",
      "command": "bash start.sh && task scripts"
    },
    {
      "label": "(services): Update elements of the repository that require API access",
      "type": "shell",
      "command": "bash start.sh && task services"
    },
    {
      "label": "(shell): Start a terminal session using Docker with any Linux operating system",
      "type": "shell",
      "command": "bash start.sh && task shell"
    },
    {
      "label": "(start): Start the project by installing / updating dependencies, repairing issues, and opening a tutorial",
      "type": "shell",
      "command": "bash start.sh && task start"
    },
    {
      "label": "(synchronize): Set up the project and refresh it with the latest changes",
      "type": "shell",
      "command": "bash start.sh && task synchronize"
    },
    {
      "label": "(test): Open an interactive dialog to select and run a Molecule test",
      "type": "shell",
      "command": "bash start.sh && task test"
    },
    {
      "label": "(update): Fully update the repository",
      "type": "shell",
      "command": "bash start.sh && task update"
    },
    {
      "label": "(yubikey): Create an OpenGPG-enabled YubiKey",
      "type": "shell",
      "command": "bash start.sh && task yubikey"
    },
    {
      "label": "(ansible:playbook:environment): Prompts for which environment to use and then symlinks to it",
      "type": "shell",
      "command": "bash start.sh && task ansible:playbook:environment"
    },
    {
      "label": "(ansible:playbook:find-missing:files): Find roles that are missing files",
      "type": "shell",
      "command": "bash start.sh && task ansible:playbook:find-missing:files"
    },
    {
      "label": "(ansible:populate:dependencies): Attempt to automatically populate `meta/main.yml` and `requirements.yml`",
      "type": "shell",
      "command": "bash start.sh && task ansible:populate:dependencies"
    },
    {
      "label": "(ansible:test:local): Run the Ansible play on the local machine (or via WSL - see task summary)",
      "type": "shell",
      "command": "bash start.sh && task ansible:test:local"
    },
    {
      "label": "(ansible:test:molecule:docker): Runs a Docker Molecule test",
      "type": "shell",
      "command": "bash start.sh && task ansible:test:molecule:docker"
    },
    {
      "label": "(ansible:test:molecule:local): Runs a Molecule test on the localhost",
      "type": "shell",
      "command": "bash start.sh && task ansible:test:molecule:local"
    },
    {
      "label": "(ansible:test:molecule:ssh): Runs a Molecule test over SSH",
      "type": "shell",
      "command": "bash start.sh && task ansible:test:molecule:ssh"
    },
    {
      "label": "(ansible:test:molecule:virtualbox): Runs a full E2E Molecule test for all supported operating systems",
      "type": "shell",
      "command": "bash start.sh && task ansible:test:molecule:virtualbox"
    },
    {
      "label": "(ansible:test:molecule:virtualbox:converge): Provisions a desktop VirtualBox VM and then runs a Molecule test",
      "type": "shell",
      "command": "bash start.sh && task ansible:test:molecule:virtualbox:converge"
    },
    {
      "label": "(ansible:test:vagrant): Runs the playbook using Vagrant",
      "type": "shell",
      "command": "bash start.sh && task ansible:test:vagrant"
    },
    {
      "label": "(ci:github:actions:test): Locally test the on-push GitHub Action event (only works for Linux containers)",
      "type": "shell",
      "command": "bash start.sh && task ci:github:actions:test"
    },
    {
      "label": "(commit:all): Add all the untracked changes and commit the code",
      "type": "shell",
      "command": "bash start.sh && task commit:all"
    },
    {
      "label": "(common:code:count): Display a chart detailing the lines of code for each language used",
      "type": "shell",
      "command": "bash start.sh && task common:code:count"
    },
    {
      "label": "(common:code:find:todo): Scan code base for TODOs and FIXMEs",
      "type": "shell",
      "command": "bash start.sh && task common:code:find:todo"
    },
    {
      "label": "(docker:build): Build a regular Docker image and then generate a slim build from it",
      "type": "shell",
      "command": "bash start.sh && task docker:build"
    },
    {
      "label": "(docker:build:fat:build): Build a normal Docker container from the Dockerfile",
      "type": "shell",
      "command": "bash start.sh && task docker:build:fat:build"
    },
    {
      "label": "(docker:build:slim): Build a slim version of the Docker image",
      "type": "shell",
      "command": "bash start.sh && task docker:build:slim"
    },
    {
      "label": "(docker:publish): Publish the Docker images (using `Docker*.test.yml` files)",
      "type": "shell",
      "command": "bash start.sh && task docker:publish"
    },
    {
      "label": "(docker:shell): Open the terminal of an existing Docker image",
      "type": "shell",
      "command": "bash start.sh && task docker:shell"
    },
    {
      "label": "(docker:test): Perform all available tests on the Docker image",
      "type": "shell",
      "command": "bash start.sh && task docker:test"
    },
    {
      "label": "(docker:test:container-structure-test): Runs ContainerStructureTest for Dockerfile build",
      "type": "shell",
      "command": "bash start.sh && task docker:test:container-structure-test"
    },
    {
      "label": "(docker:test:output): For each folder matching `./test/output*`, ensure slim and latest output match with default command",
      "type": "shell",
      "command": "bash start.sh && task docker:test:output"
    },
    {
      "label": "(fix:eslint): Fix ESLint errors automatically",
      "type": "shell",
      "command": "bash start.sh && task fix:eslint"
    },
    {
      "label": "(fix:eslint:staged): Auto-fix only modified files with ESLint",
      "type": "shell",
      "command": "bash start.sh && task fix:eslint:staged"
    },
    {
      "label": "(fix:go): Fix Go with all available Go fixers",
      "type": "shell",
      "command": "bash start.sh && task fix:go"
    },
    {
      "label": "(fix:json): Format and sort JSON",
      "type": "shell",
      "command": "bash start.sh && task fix:json"
    },
    {
      "label": "(fix:markdown): Auto-fixes markdown files",
      "type": "shell",
      "command": "bash start.sh && task fix:markdown"
    },
    {
      "label": "(fix:packer): Automatically fix and format Packer templates",
      "type": "shell",
      "command": "bash start.sh && task fix:packer"
    },
    {
      "label": "(fix:php): Fix PHP with all available PHP auto-fixers",
      "type": "shell",
      "command": "bash start.sh && task fix:php"
    },
    {
      "label": "(fix:prettier): Automatically format most files using Prettier",
      "type": "shell",
      "command": "bash start.sh && task fix:prettier"
    },
    {
      "label": "(fix:python): Automatically format Python files using Black",
      "type": "shell",
      "command": "bash start.sh && task fix:python"
    },
    {
      "label": "(fix:shellcheck): Automatically apply fixes to `.sh` and `.sh.j2` files using Shellcheck",
      "type": "shell",
      "command": "bash start.sh && task fix:shellcheck"
    },
    {
      "label": "(fix:spelling:markdown): Auto-fix spelling errors in markdown files using `misspell`",
      "type": "shell",
      "command": "bash start.sh && task fix:spelling:markdown"
    },
    {
      "label": "(fix:toml): Format `.toml` files by alphabetizing and flattening",
      "type": "shell",
      "command": "bash start.sh && task fix:toml"
    },
    {
      "label": "(fix:yaml): Auto-format and sort YML files",
      "type": "shell",
      "command": "bash start.sh && task fix:yaml"
    },
    {
      "label": "(get:links): Log useful links such as the current project's git repository link",
      "type": "shell",
      "command": "bash start.sh && task get:links"
    },
    {
      "label": "(go:test:convey): Run tests through the browser with GoConvey",
      "type": "shell",
      "command": "bash start.sh && task go:test:convey"
    },
    {
      "label": "(group:exec): Execute group commands on any GitLab group (including repositories in sub-groups)",
      "type": "shell",
      "command": "bash start.sh && task group:exec"
    },
    {
      "label": "(image:compress): Compress JPG/PNG images via TinyPNG",
      "type": "shell",
      "command": "bash start.sh && task image:compress"
    },
    {
      "label": "(image:resize): Resize an image",
      "type": "shell",
      "command": "bash start.sh && task image:resize"
    },
    {
      "label": "(install:ansible:role): Install an Ansible role by using Docker",
      "type": "shell",
      "command": "bash start.sh && task install:ansible:role"
    },
    {
      "label": "(lint:ansible): Lint Ansible projects using Ansible Lint",
      "type": "shell",
      "command": "bash start.sh && task lint:ansible"
    },
    {
      "label": "(lint:any): Generic linting of files for things like destroyed-symlinks, merge conflicts, etc.",
      "type": "shell",
      "command": "bash start.sh && task lint:any"
    },
    {
      "label": "(lint:codeclimate): Run CodeClimate with all available linters",
      "type": "shell",
      "command": "bash start.sh && task lint:codeclimate"
    },
    {
      "label": "(lint:docker): Lint Dockerfiles using Hadolint (requires Docker)",
      "type": "shell",
      "command": "bash start.sh && task lint:docker"
    },
    {
      "label": "(lint:dockerfilelint): Lint a Dockerfile with `dockerfilelint`",
      "type": "shell",
      "command": "bash start.sh && task lint:dockerfilelint"
    },
    {
      "label": "(lint:eslint): Lint with ESLint",
      "type": "shell",
      "command": "bash start.sh && task lint:eslint"
    },
    {
      "label": "(lint:eslint:staged): Lint only modified files with ESLint",
      "type": "shell",
      "command": "bash start.sh && task lint:eslint:staged"
    },
    {
      "label": "(lint:eslint:warn-all): Convert ESLint errors into warnings by saving the modified configuration inside `package.json`",
      "type": "shell",
      "command": "bash start.sh && task lint:eslint:warn-all"
    },
    {
      "label": "(lint:go): Lint Go with `golangci-lint`",
      "type": "shell",
      "command": "bash start.sh && task lint:go"
    },
    {
      "label": "(lint:markdown:markdown): Lint markdown files with `remark`",
      "type": "shell",
      "command": "bash start.sh && task lint:markdown:markdown"
    },
    {
      "label": "(lint:markdown:markdown:links): Scan markdown files for broken links",
      "type": "shell",
      "command": "bash start.sh && task lint:markdown:markdown:links"
    },
    {
      "label": "(lint:packer): Validate the Packer templates ending with `template.json`",
      "type": "shell",
      "command": "bash start.sh && task lint:packer"
    },
    {
      "label": "(lint:php): Lint PHP with all available PHP linters",
      "type": "shell",
      "command": "bash start.sh && task lint:php"
    },
    {
      "label": "(lint:prettier): Lint formatting using Prettier",
      "type": "shell",
      "command": "bash start.sh && task lint:prettier"
    },
    {
      "label": "(lint:prose:prose): Lint text/markdown for English prose with `proselint`",
      "type": "shell",
      "command": "bash start.sh && task lint:prose:prose"
    },
    {
      "label": "(lint:python): Lint Python files using Flake8",
      "type": "shell",
      "command": "bash start.sh && task lint:python"
    },
    {
      "label": "(lint:shellcheck): Report possible errors in shell scripts",
      "type": "shell",
      "command": "bash start.sh && task lint:shellcheck"
    },
    {
      "label": "(lint:spelling): Checks for spelling errors in staged files",
      "type": "shell",
      "command": "bash start.sh && task lint:spelling"
    },
    {
      "label": "(lint:spelling:markdown): Run `misspell` (a spell-checker) on all markdown files",
      "type": "shell",
      "command": "bash start.sh && task lint:spelling:markdown"
    },
    {
      "label": "(lint:vagrant): Validate the Vagrantfile",
      "type": "shell",
      "command": "bash start.sh && task lint:vagrant"
    },
    {
      "label": "(lint:yaml): Lint `.yml` files using YAML Lint",
      "type": "shell",
      "command": "bash start.sh && task lint:yaml"
    },
    {
      "label": "(nest:benchmark): Initiate a web server benchmarking session (with `clinic`)",
      "type": "shell",
      "command": "bash start.sh && task nest:benchmark"
    },
    {
      "label": "(new:project): Create a new project",
      "type": "shell",
      "command": "bash start.sh && task new:project"
    },
    {
      "label": "(npm:build): Build the application",
      "type": "shell",
      "command": "bash start.sh && task npm:build"
    },
    {
      "label": "(npm:clean): Remove temporary folders that might conflicts with builds",
      "type": "shell",
      "command": "bash start.sh && task npm:clean"
    },
    {
      "label": "(npm:cov:open): View the code coverage report in the browser",
      "type": "shell",
      "command": "bash start.sh && task npm:cov:open"
    },
    {
      "label": "(npm:cov:upload): Upload code coverage report to `codecov.io`",
      "type": "shell",
      "command": "bash start.sh && task npm:cov:upload"
    },
    {
      "label": "(npm:depcheck:dependencies): Remove unused dependencies",
      "type": "shell",
      "command": "bash start.sh && task npm:depcheck:dependencies"
    },
    {
      "label": "(npm:doc:html): Generate TypeDoc HTML documentation",
      "type": "shell",
      "command": "bash start.sh && task npm:doc:html"
    },
    {
      "label": "(npm:doc:json): Generate TypeDoc JSON documentation",
      "type": "shell",
      "command": "bash start.sh && task npm:doc:json"
    },
    {
      "label": "(npm:start): Run the application",
      "type": "shell",
      "command": "bash start.sh && task npm:start"
    },
    {
      "label": "(npm:start:inspect): Run the application in `watch` mode and open DevTools",
      "type": "shell",
      "command": "bash start.sh && task npm:start:inspect"
    },
    {
      "label": "(npm:start:prod): Run the application in `production` mode",
      "type": "shell",
      "command": "bash start.sh && task npm:start:prod"
    },
    {
      "label": "(npm:start:prod:inspect): Run the application in `production` and `watch` mode and open DevTools",
      "type": "shell",
      "command": "bash start.sh && task npm:start:prod:inspect"
    },
    {
      "label": "(npm:test): Run the unit tests for an NPM project",
      "type": "shell",
      "command": "bash start.sh && task npm:test"
    },
    {
      "label": "(npm:test:coverage): Generate code coverage assets",
      "type": "shell",
      "command": "bash start.sh && task npm:test:coverage"
    },
    {
      "label": "(npm:test:dashboard): Run and manage test cases from a web interface (powered by `majestic`)",
      "type": "shell",
      "command": "bash start.sh && task npm:test:dashboard"
    },
    {
      "label": "(npm:test:debug): Debug tests in `watch` mode",
      "type": "shell",
      "command": "bash start.sh && task npm:test:debug"
    },
    {
      "label": "(npm:test:inspect): Debug tests with DevTools in `watch` mode",
      "type": "shell",
      "command": "bash start.sh && task npm:test:inspect"
    },
    {
      "label": "(npm:typesync): Install missing type definitions",
      "type": "shell",
      "command": "bash start.sh && task npm:typesync"
    },
    {
      "label": "(packer:build): Build Packer images for all available platforms",
      "type": "shell",
      "command": "bash start.sh && task packer:build"
    },
    {
      "label": "(packer:build:kvm): Build a Packer image for KVM",
      "type": "shell",
      "command": "bash start.sh && task packer:build:kvm"
    },
    {
      "label": "(packer:build:parallels): Build a Packer image for Parallels",
      "type": "shell",
      "command": "bash start.sh && task packer:build:parallels"
    },
    {
      "label": "(packer:build:virtualbox): Build a Packer image for VirtualBox",
      "type": "shell",
      "command": "bash start.sh && task packer:build:virtualbox"
    },
    {
      "label": "(packer:build:vmware): Build a Packer image for VMWare",
      "type": "shell",
      "command": "bash start.sh && task packer:build:vmware"
    },
    {
      "label": "(packer:install:platforms): Install all available virtualization providers",
      "type": "shell",
      "command": "bash start.sh && task packer:install:platforms"
    },
    {
      "label": "(publish:android:beta): Publishes Android app to Firebase beta channel",
      "type": "shell",
      "command": "bash start.sh && task publish:android:beta"
    },
    {
      "label": "(publish:android:release): Publishes Android app to Google Play",
      "type": "shell",
      "command": "bash start.sh && task publish:android:release"
    },
    {
      "label": "(publish:app:beta): Publish a beta release of all the release targets",
      "type": "shell",
      "command": "bash start.sh && task publish:app:beta"
    },
    {
      "label": "(publish:app:release): Publish a production release of all the targets",
      "type": "shell",
      "command": "bash start.sh && task publish:app:release"
    },
    {
      "label": "(publish:brew:cask): Publishes a Homebrew Cask",
      "type": "shell",
      "command": "bash start.sh && task publish:brew:cask"
    },
    {
      "label": "(publish:brew:formula): Publishes a Homebrew Formulae",
      "type": "shell",
      "command": "bash start.sh && task publish:brew:formula"
    },
    {
      "label": "(publish:chrome:release): Publishes Chrome extension",
      "type": "shell",
      "command": "bash start.sh && task publish:chrome:release"
    },
    {
      "label": "(publish:force): Force a `semantic-release` even if there are no new eligible commits",
      "type": "shell",
      "command": "bash start.sh && task publish:force"
    },
    {
      "label": "(publish:ios:beta): Publishes iOS app to Firebase beta channel",
      "type": "shell",
      "command": "bash start.sh && task publish:ios:beta"
    },
    {
      "label": "(publish:ios:release): Publishes iOS app to iTunes",
      "type": "shell",
      "command": "bash start.sh && task publish:ios:release"
    },
    {
      "label": "(publish:opera:release): Publishes Opera extension",
      "type": "shell",
      "command": "bash start.sh && task publish:opera:release"
    },
    {
      "label": "(pull:upstream): Pull from upstream repositories",
      "type": "shell",
      "command": "bash start.sh && task pull:upstream"
    },
    {
      "label": "(python:build): Build the project",
      "type": "shell",
      "command": "bash start.sh && task python:build"
    },
    {
      "label": "(python:build:binary): Build standalone binary",
      "type": "shell",
      "command": "bash start.sh && task python:build:binary"
    },
    {
      "label": "(python:publish): Publish the project to PyPi.org",
      "type": "shell",
      "command": "bash start.sh && task python:publish"
    },
    {
      "label": "(python:requirementstxt): Generate the requirements.txt fallback file",
      "type": "shell",
      "command": "bash start.sh && task python:requirementstxt"
    },
    {
      "label": "(python:run): Runs the project by calling `run.py`",
      "type": "shell",
      "command": "bash start.sh && task python:run"
    },
    {
      "label": "(python:test): Runs tests with `pytest` after fixing and linting",
      "type": "shell",
      "command": "bash start.sh && task python:test"
    },
    {
      "label": "(reset:force): Aggressively reset the project (**WARNING** This will wipe uncommitted work)",
      "type": "shell",
      "command": "bash start.sh && task reset:force"
    },
    {
      "label": "(security:bandit): Check for Python code security issues",
      "type": "shell",
      "command": "bash start.sh && task security:bandit"
    },
    {
      "label": "(security:dockle): Analyze and lint the Docker container using Dockle",
      "type": "shell",
      "command": "bash start.sh && task security:dockle"
    },
    {
      "label": "(security:gitleaks): Scans repository (including git history) for possible leaked keys",
      "type": "shell",
      "command": "bash start.sh && task security:gitleaks"
    },
    {
      "label": "(security:grype): Scan container images and file systems for security issues using Grype",
      "type": "shell",
      "command": "bash start.sh && task security:grype"
    },
    {
      "label": "(security:private-keys): Scan for private keys",
      "type": "shell",
      "command": "bash start.sh && task security:private-keys"
    },
    {
      "label": "(security:snyk): Analyze the Docker container for security vulnerabilities with Snyk (requires login)",
      "type": "shell",
      "command": "bash start.sh && task security:snyk"
    },
    {
      "label": "(security:trivy): Analyze the Docker container for security vulnerabilities with Trivy",
      "type": "shell",
      "command": "bash start.sh && task security:trivy"
    },
    {
      "label": "(security:yubikey:prepare): Prepares an environment by provisioning all the required software / preliminary steps",
      "type": "shell",
      "command": "bash start.sh && task security:yubikey:prepare"
    },
    {
      "label": "(symlink:playbook): Symlink all the roles in the roles/ folder to ~/.ansible/roles",
      "type": "shell",
      "command": "bash start.sh && task symlink:playbook"
    },
    {
      "label": "(symlink:role): Symlink the current role to ~/.ansible/roles/.",
      "type": "shell",
      "command": "bash start.sh && task symlink:role"
    },
    {
      "label": "(tag:deps): Inject a new command in the `Taskfile.yml` that includes all tasks matching a given tag as deps",
      "type": "shell",
      "command": "bash start.sh && task tag:deps"
    },
    {
      "label": "(vagrant:up): Select which virtualization platform to run the image on using an interactive prompt",
      "type": "shell",
      "command": "bash start.sh && task vagrant:up"
    }
  ]
}
