1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

開発環境の起動コマンドを一つに

Posted at

はじめに

現在、私は WordPress・Flutter・Laravel などで開発しています。Flutter Laravelは始めたばかりですが・・
プロジェクトごとに異なる開発環境(Vagrant、Docker、wp-env、Flutterなど)を使用していると、起動方法を毎回思い出すのが手間になってきました。

# Vagrant の場合
vagrant up

# Laravel Sail の場合
./vendor/bin/sail up -d

# wp-env の場合
npm run wp-env start

# Flutter の場合
flutter run

プロジェクトを切り替えるたびに「起動コマンド・・・」となるのがストレスになっていたので、判別&実行をまとめて自動化するシェルスクリプトを作りました。

起動対象を自動判別して実行するシェルスクリプト

以下のような project-up.sh スクリプトを作成しどこかにおいて、自在に起動/停止ができます。

#!/bin/bash
# project-up.sh

COMMAND=$1

if [ -z "$COMMAND" ]; then
  echo "Usage: $0 [up|halt]"
  exit 1
fi

if [ -f Vagrantfile ]; then
  echo "Vagrantfile が見つかりました。Vagrant 用の処理を実行します。"
  case "$COMMAND" in
    up) vagrant up ;;
    halt) vagrant halt ;;
    *) echo "Unknown command: $COMMAND"; exit 1 ;;
  esac
  exit 0

elif [ -f .wp-env.json ]; then
  echo ".wp-env が見つかりました。wp-env 用の処理を実行します。"
  case "$COMMAND" in
    up) npm run wp-env start ;;
    halt) npm run wp-env stop ;;
    *) echo "Unknown command: $COMMAND"; exit 1 ;;
  esac
  exit 0

elif [ -f pubspec.yaml ]; then
  echo "pubspec.yaml が見つかりました。Flutter 用の処理を実行します。"
  case "$COMMAND" in
    up) flutter run ;;
    halt) echo "[Flutter] flutter run は Ctrl+C で停止してください。" ;;
    *) echo "Unknown command: $COMMAND"; exit 1 ;;
  esac
  exit 0

elif [ -f "./docker-compose.yml" ] && [ -x "./vendor/bin/sail" ]; then
  echo "Laravel Sail 用の構成が確認できました。"
  case "$COMMAND" in
    up)
      echo "🟢 コンテナを起動します..."
      ./vendor/bin/sail up -d
      echo "🛠 マイグレーションを実行します..."
      ./vendor/bin/sail artisan migrate
      ;;
    halt)
      echo "🔴 コンテナを停止します..."
      ./vendor/bin/sail down
      ;;
    *) echo "Unknown command: $COMMAND"; exit 1 ;;
  esac
  exit 0

else
  echo "対応する環境ファイルが見つかりませんでした。"
  exit 1
fi

使い方

シェルスクリプトに実行権限を与えて実行するだけです。

chmod +x ./project-up.sh

# 開発環境を起動したいとき
./project-up.sh up

# 停止したいとき
./project-up.sh halt

方法

各種環境に特有のファイル(Vagrantfile, .wp-env.json, pubspec.yaml, docker-compose.yml + sail)の存在をチェックして判別。
なので他にもある場合には同じ形式で増やせば良いと思います。

より快適に使うために alias の設定

起動ファイルの名称を覚えていられません!! ./project-up.sh
以下のようにエイリアスを設定するとさらに快適です。

たとえば .zshrc や .bashrc に以下を追記しましょー

alias up='./project-up.sh up'
alias halt='./project-up.sh halt'

設定後は

source ~/.bash_profile

設定後は適用させます。自分の場合は.bash_profileに記述。ターミナル再起動でも。

これで up halt で実行できるはずです!

経緯

もともと10数年前にvccwというWordpressの開発環境を構築してくれるVagrantベースのものを使っていたのですが(今も昔のものはそのまま使っているのですが)今時はwp-envを使っているということであれやこれやと増えてきてしまったので面倒だ・・・
ってなったわけです。

使い方というか

自分はVS code でプロジェクトを開いて
プロジェクトルートでターミナルを起動して
そこで「up」!
すれば判別してくれてそれぞれのプロジェクトを起動してくれるって感じです

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?