Есть проект, который лежит в основном репозитории. Веб интерфейс в другом репозитории и подключен как субмодуль. При изменении кода фронтенда нужно:
Сделать git pull
Выполнить gulp build, gulp cache, gulp *
Отдельно под эти задачи написаны скрипты, но хочется все в одном так сказать и рулить командами через аргументы к скрипту. Набросал по примерам в интернете такое:
#!/bin/bash
set -e
ME=`basename $0`
function print_help() {
echo "Работа с фронтендом:"
echo
echo "Использование: $ME options..."
echo "Параметры:"
echo " -i Если проект устанавливается впервые. Команда подключит submodule репозитория фронтенда."
echo " -b Команда выполнит сборку фронтенда и генерацию файла cache.appcache."
echo " -u Команда подтянет изменения репозитория фронтенда."
echo " -h Справочная информация по работе скрипта."
echo
}
function install_frontend {
echo "Install submodule frontend"
}
function build_frontend {
echo "Build frontend"
}
function update_frontend {
echo "Update frontend repository"
}
# Если скрипт запущен без аргументов, открываем справку.
if [ $# = 0 ]; then
print_help
fi
while getopts ":hibu" opt ;
do
case $opt in
h) print_help;
;;
i) install_frontend;
;;
b) build_frontend
;;
u) update_frontend
;;
*) echo "Неправильный параметр";
echo "Для вызова справки запустите $ME -h";
exit 1
;;
esac
done
Тело функций конечно же заменю на нужные команды. А теперь вопрос:
Как переписать скрипт, чтобы можно было передавать параметры не -i, а --install и т. п. Ну и конечно комбинировать их: script.sh --install --build