Task

Source:: https://taskfile.dev/ Task - это утилита написанная на Go представляющая из себя замену Make. Make бесспорно хорош но как ни крути создавался в другое время, а главное для других задач.

  • Плюсы
    • YAML вместо эзотеричных табов.
    • Отсутствие привязки к сборке сишного кода. Имена тасок это просто имена и всё.
    • Расширенный синтаксис для типовых опреаций сборки. Например переход в директорию для шага
  • Минусы
    • Не так известен. Наличие Makefile в проекте очевидно само по себе, наличие же Taskfile.yml требует пояснений.

Установка

  • Можно просто скачать бинарник с Github проекта и пложить его куда угодно в $PATH.
  • Можно установить скриптом в одну строку:
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b ~/.local/bin

Вообще на странице проекта много диковатых способов установки. Типа npm (для go-шного бинаря, да).

Использование

Детали тут. Создать в проекте файл Taskfile.yml. Например такой:

version: '3'
 
tasks:
  build:
    cmds:
      - npx quartz build --concurrency 10
  default:
    cmds:
      - git checkout CNAME
      - git add .
      - git commit -a -m "."
      - git push
    dir: public
    deps:
      - build

Таска default выполняется по умолчанию при запуске task.