LINUX.ORG.RU

Альтернатива Makefile для создания алиасов длинных комманд

 ,


0

1

В общем сабж, обычно для выполнения длинных комманд создаётся Makefile, который помогает писать меньше букв. Например:

build:
    docker compose build

и после просто пишем:

make build

и так далее. Конкретно с docker compose (который v2) это приводит к неприятным проблемам: отсутствие цветов, а так же буфферизация мешает обновлять терминал. Так же мешает запускать createsuperuser для django, сразу падает ошибка, что мол не интерактивно, а без make работает нормально.

Собственно ищу путь, как бы достичь сокращения команд, но чтобы это было в рамках проекта (т.е. алиасы в .bashrc или что-то подобное не совсем подходит).

Может есть какой-то инструмент, которым бы это было легко достичь?

Ответ на: комментарий от squareroot

Комманд штук 15, например. В целом, конечно, можно было обойтись файлом типа .envrc, как предлагает @Crocodoom, в котором пачка алиасов. В целом это не так плохо, как решение, но пока немного странно, не уверен, что так сработает.

conformist ★★★
() автор топика
Ответ на: комментарий от annulen

Что-то сразу не подумал так погуглить, нашёл это. Как пример пойдёт, никаких зависимостей, кажется то, что нужно.

conformist ★★★
() автор топика
Ответ на: комментарий от conformist

На мой взгляд, главное преимущество make в данном кейсе - это автокомплит, который одновременно дает удобство и рефлексию, т.е. нажав два раза таб ты получаешь автоматический список всех доступных команд. Соотвественно, ближайшим аналогом без make является пачка скриптов в отдельном каталоге, который можно при желании добавить в PATH. А все эти make.sh и envrc от лукавого.

annulen ★★★★★
()
Ответ на: комментарий от annulen

Я полностью согласен, но make имеет буфер, отчего ломает некоторые интерактивные штуки, потому и пошёл искать какой-то аналог. Писать длинные команды постоянно как-то не очень хочется, но и хочется, чтобы работало нативно. Вроде есть некий unbuffered, который заставляет думать make, что пишет он не в stdout, а сразу на входу другой программе, но получается, что все команды будут типа: unbuffered make build.

conformist ★★★
() автор топика
Последнее исправление: conformist (всего исправлений: 1)
Ответ на: комментарий от conformist

Можно назвать скрипты точно так же, как цели в make, тогда не придется набирать длинные имена. А управлять PATH с пмомщью того же direnv, например, чтобы при выходе все возвращаолось на свои места

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.