Автоматизируйте рабочий процесс в оболочке

Автоматизируйте рабочий процесс в оболочке

Используя графические интерфейсы, я наконец-то понял всю мощь представления всей информации в текстовом виде, но пока не знаю, как использовать всю эту мощь.

Я понял, что рабочий процесс для одного проекта выглядит следующим образом...

# compile repo 1
cd ~/workspace/repo1
make -B
# deploys compiled code into repo2
make deploy

# commit repo 1
cd ~/workspace/repo1
git add .
git commit -m "changes"
git push origin master

# commit repo 2
cd ~/workspace/repo2
git add .
git commit -m "changes"
git push origin master

Мой вопрос не в том, как это сделать, а в том, какой инструмент для этого нужен? Читая вокруг, я понял, что мне нужен скрипт Bash, но я хотел бы узнать мнение экспертов.

решение1

Вы уже хорошо поработали, если соберете все данные в одном месте.

Скопируйте все это в текстовый файл (например, workflow.sh, но имя не имеет значения), затем поместите этов самой первой строке файла:

#!/bin/sh

Теперь у вас есть скрипт оболочки. Сделайте его исполняемым:

chmod +x workflow.sh

Теперь вы можете запустить его как команду:

./workflow.sh

Он выполнит каждую из этих команд по порядку, просто вызвав рабочий процесс.

Теперь вы начинающий системный программист. Оттуда вы можете только расти.

Обновлять

Указатьизменениябез необходимости редактировать скрипт каждый раз, когда необходимо изменить:

git commit -m "changes"

Читать:

git commit -m "$1"

Затем вы можете пройтиизмененияв качестве аргумента командной строки:

./workflow "Describe changes made"

Еще одними полезными инструментами являются псевдонимы и PATH. Вы можете создать специальный каталог (например ~/bin) и поместить все скрипты туда, добавить этот каталог в свою PATHпеременную, и вам не нужно будет вводить полный путь к скрипту каждый раз, когда вы хотите его запустить. В случае с псевдонимами вам нужно создать псевдоним для каждого скрипта, однако иногда псевдоним удобнее, так как вы можете указать в нем различные параметры запуска.

решение2

Вы можете организовать свой код с помощью утилит Python:https://wiki.python.org/moin/FlowBasedProgramming

Еще один пакет, не упомянутый выше, но все равно многообещающий — Snakemake.

Связанный контент