Spec
MODIFIED Requirements¶
Requirement: .env設定読み込み関数の提供¶
scripts/common/Load-EnvSettings.ps1 は Load-EnvSettings 関数を提供しなければならない(SHALL)。Load-EnvSettings は -EnvPath パラメーターを受け付け、未指定時はプロジェクトルートの .env をデフォルトとして使用する。指定パスに .env ファイルが存在しない場合はエラーをスローしなければならない(MUST)。Apply-EnvSettings 関数は廃止し、Import-EnvParams に統合する。
Scenario: .envファイルが存在する場合の読み込み¶
- WHEN 指定パス(またはデフォルトのプロジェクトルート
.env)にファイルが存在する - THEN
Load-EnvSettingsはファイル内のKEY=VALUE形式の行をパースし、キーと値のハッシュテーブルを返す
Scenario: .envファイルが存在しない場合¶
- WHEN 指定パス(またはデフォルトのプロジェクトルート
.env)にファイルが存在しない - THEN
Load-EnvSettingsはファイルパスを含むエラーメッセージと共に例外をスローする
Scenario: -EnvPath による任意パス指定¶
- WHEN
Load-EnvSettings -EnvPath "C:\envs\.env.prod"のようにパスを指定する - THEN 指定されたパスの
.envファイルが読み込まれる
Requirement: 既存スクリプトの共通関数への移行¶
既存の4スクリプト(Clear-Data, Deploy-StaticFiles, New-SasToken, Show-Urls)は、Azure パラメーター3つを param() より削除(MUST)。
-EnvFile を追加し、.env 読み込みは Import-EnvParams へ置き換える(MUST)。スクリプト内は .env キー名を変数名とする(例:$AZURE_SUBSCRIPTION_ID)。
Scenario: Azure パラメーターの廃止¶
- WHEN スクリプトの
param()ブロックを確認する - THEN
SubscriptionId、ResourceGroupName、StorageAccountNameパラメーターが存在しない
Scenario: .env 未配置での実行¶
- WHEN
.envファイルが存在しない状態でスクリプトを実行する - THEN
.envファイルが見つからない旨のエラーメッセージと共にスクリプトが終了する
Scenario: .env からの変数利用¶
- WHEN
.envにAZURE_SUBSCRIPTION_ID=xxxが設定された状態でスクリプトを実行する - THEN スクリプト内で
$AZURE_SUBSCRIPTION_IDとして値が利用可能であり、Connect-AzureStorageに渡される
Scenario: .env読み込みと共通関数の併用¶
- WHEN スクリプトが実行される
- THEN Import-EnvParams → Connect-AzureStorage の順で処理が実行される
REMOVED Requirements¶
Requirement: コマンドライン引数が未指定のパラメーターへの.env値の適用¶
Reason: Apply-EnvSettings 関数を廃止。.env のキー名をそのまま変数として設定する Import-EnvParams に統合したため、PascalCase ↔ SNAKE_CASE のマッピングと BoundParameters による上書き判定が不要になった。
Migration: Apply-EnvSettings の呼び出しを Import-EnvParams に置き換える。スクリプト内の変数参照を .env のキー名に変更する(例: $SubscriptionId → $AZURE_SUBSCRIPTION_ID)。