OMDSCloud/environment_building_tools/environment-build-local.sh
2025-01-21 05:23:54 +00:00

92 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
# ファイルフルパス
INITIAL_DIR=$(pwd)
LOG_FILE="$INITIAL_DIR/logfile.log"
ODMS_CLOUD_DIR="../"
ENV_FILE_PATH="../.env"
CLIENT_ENV_FILE="../dictation_client/.env.local"
SERVER_ENV_FILE="../dictation_server/.env.local"
# ログ関数
log_message() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
}
# コマンド存在確認
check_command() {
command -v "$1" >/dev/null 2>&1
}
# Docker確認
check_docker_version() {
DOCKER_VERSION=$(docker --version 2>/dev/null | grep -o '[0-9.]*' | head -1)
if [[ -z "$DOCKER_VERSION" ]]; then
log_message "ERROR: Docker is not installed or not available in PATH."
return 1
else
log_message "Docker version $DOCKER_VERSION is available."
return 0
fi
}
# Dev Container CLI 確認
check_devcontainer_cli() {
if check_command "devcontainer"; then
log_message "Dev Container CLI is available."
return 0
else
log_message "ERROR: Dev Container CLI is not installed."
return 1
fi
}
# logfile.log が存在しないとき作成
touch logfile.log
# スクリプト実行に必要なパッケージ確認
log_message "Starting dependency check..."
if ! check_docker_version; then
log_message "Dependency check failed: Docker is required."
exit 1
fi
if ! check_devcontainer_cli; then
log_message "Dependency check failed: Dev Container CLI is required."
exit 1
fi
log_message "All dependencies are met. Proceeding with the script..."
# .envファイル確認
if [ -f "$ENV_FILE_PATH" ]; then
log_message ".env file found at $ENV_FILE_PATH"
else
log_message "ERROR: .env file not found at $ENV_FILE_PATH"
exit 1
fi
# clientの.env.localファイル確認
if [ -f "$CLIENT_ENV_FILE" ]; then
log_message ".env.local file found in dictation_client."
else
log_message "ERROR: .env.local file missing in dictation_client."
exit 1
fi
# serverの.env.localファイル確認
if [ -f "$SERVER_ENV_FILE" ]; then
log_message ".env.local file found in dictation_server."
else
log_message "ERROR: .env.local file missing in dictation_server."
exit 1
fi
log_message "All required .env files are present."
# 1: dictation_client に Dev Container 起動, ローカル用サイトビルドする
sh ./buildclient.sh
# 2: dictation_server に Dev Container 起動, ローカル用のサーバー起動する
sh ./runserver.sh