Скрипт Unix для запуска нескольких проектов из терминала

Что у меня есть?

  • У меня есть несколько проектов в Nodejs и Angularjs, которые зависят друг от друга.
  • Я используюcd в каждый каталог проекта и запустите соответствующую команду для этого проекта.
  • Для этого мне нужно запомнить, какую команду я должен использовать для запуска каждого проекта.
  • Для каждого проекта может потребоваться выполнение нескольких команд . (например: запуск пользовательского интерфейса и серверной части)
  • Все проекты находятся в одном каталоге.

Что я хочу?

  • Мне нужен сценарий, который открывал бы уникальные вкладки терминала для каждого проекта, который я хочу запустить.
  • Также название вкладки должно напоминать название проекта и запускаемую команду в его заголовке.
# scripting terminal tabs
Источник
Codelisting
за 0 против

сценарий

# Set your parent directory, where all projects would be present
projDir='/home/yatishbalaji/projects/'

# Declare list of projects along with the command to run.
# If u want to run multiple commands per project (eg: ui and backend), 
# seperate commands with `;`, and this script will open them in different tabs

declare -A MYMAPS=(
["manage"]="grunt serve"  
["hire"]="gulp serve" 
["billing"]="npm run startApi;npm run startUI;npm run startLambda"
["algo"]="npm run dev"
);

launchCmd=''

for app in "[email protected]"; do
        STR=${MYMAPS[$app]}
    IFS=';'
    read -ra commandArr <<< "$STR"

    for command in ${commandArr[*]}; do
            cmd='cd '$projDir$app' && '$command
        launchCmd+=(--tab -t "$app=>$command" -e "bash -c '$cmd';bash")
#       launchCmd+=(--tab -t "$app=>$command" --working-directory="$projDir$app" -e "bash -c '$command';bash")
    done
done
gnome-terminal "${launchCmd[@]}";
# mate-terminal "${launchCmd[@]}"
exit 0;

Как использовать ?

Передайте имена проектов (которые вы хотите открыть) в качестве параметров вашего скрипта.

bash ~/launchApps.sh manage billing

Codelisting
Популярные категории
На заметку программисту