-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscripts.sh
More file actions
executable file
·123 lines (120 loc) · 4.57 KB
/
scripts.sh
File metadata and controls
executable file
·123 lines (120 loc) · 4.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#!/bin/bash
# uvを使った開発タスクスクリプト
set -e
# ヘルプ表示
show_help()
{
echo "🤖 imas_music_db 開発スクリプト (uvベース)"
echo ""
echo "使用方法: ./scripts.sh <command>"
echo ""
echo "利用可能なコマンド:"
echo " setup - 開発環境のセットアップ"
echo " install - 本番用依存関係のインストール"
echo " lint - Pythonコードのリンティング"
echo " lint-fix - Pythonコードのリンティング(自動修正)"
echo " format - Pythonコードのフォーマット"
echo " yaml-lint - YAMLファイルのリンティング"
echo " yaml-fix - YAMLファイルの自動修正"
echo " shell-lint - シェルスクリプトのリンティング"
echo " shell-format - シェルスクリプトのフォーマット"
echo " shell-check - シェルスクリプトの品質チェック(リント+フォーマット)"
echo " type-check - Pyrightによる型チェック"
echo " test - 全てのコード品質チェック(型チェック含む)"
echo " run - メインスクリプトの実行"
echo " clean - 一時ファイルの削除"
echo " help - このヘルプを表示"
echo ""
echo "例:"
echo " ./scripts.sh test # コード品質チェック"
echo " ./scripts.sh shell-check # シェルスクリプト品質チェック"
echo " ./scripts.sh run # メインスクリプト実行"
}
# 各コマンドの実装
case "${1:-help}" in
"setup")
echo "🔧 開発環境をセットアップ中..."
uv sync
echo "✅ セットアップ完了"
;;
"install")
echo "📦 本番用依存関係をインストール中..."
uv sync --no-dev
echo "✅ インストール完了"
;;
"lint")
echo "🔍 Pythonコードをリンティング中..."
uv run ruff check --config config/ruff.toml
;;
"lint-fix")
echo "🔧 Pythonコードをリンティング(自動修正)中..."
uv run ruff check --fix --config config/ruff.toml
;;
"format")
echo "💅 Pythonコードをフォーマット中..."
uv run ruff format --config config/ruff.toml
;;
"yaml-lint")
echo "📄 YAMLファイルをリンティング中..."
uv run yamllint -c config/yamllint.yml .
;;
"yaml-fix")
echo "🔧 YAMLファイルを自動修正中..."
uv run yamlfix -c config/yamlfix.toml .
;;
"shell-lint")
echo "🔍 シェルスクリプトをリンティング中..."
uv run shellcheck --rcfile=config/.shellcheckrc ./*.sh
;;
"shell-format")
echo "💅 シェルスクリプトをフォーマット中..."
uv run shfmt -i 2 -p -s -ci -sr -fn -w ./*.sh
;;
"shell-check")
echo "🧪 シェルスクリプト品質チェックを実行中..."
echo "--- シェルスクリプトリンティング ---"
uv run shellcheck --rcfile=config/.shellcheckrc ./*.sh
echo "--- シェルスクリプトフォーマットチェック ---"
uv run shfmt -i 2 -p -s -ci -sr -fn -d ./*.sh
echo "✅ シェルスクリプト品質チェックが完了しました"
;;
"type-check")
echo "🔍 Pyrightによる型チェックを実行中..."
uv run pyright -p config/pyrightconfig.json
echo "✅ 型チェックが完了しました"
;;
"test")
echo "🧪 全てのコード品質チェックを実行中..."
echo "--- Pythonリンティング ---"
uv run ruff check --config config/ruff.toml
echo "--- Python型チェック ---"
uv run pyright -p config/pyrightconfig.json
echo "--- YAMLリンティング ---"
uv run yamllint -c config/yamllint.yml .
echo "--- シェルスクリプトリンティング ---"
uv run shellcheck --rcfile=config/.shellcheckrc ./*.sh
echo "--- シェルスクリプトフォーマットチェック ---"
uv run shfmt -i 2 -p -s -ci -sr -fn -d ./*.sh
echo "✅ 全てのコード品質チェックが完了しました"
;;
"run")
echo "🚀 メインスクリプトを実行中..."
uv run python sheet_to_json.py
;;
"clean")
echo "🧹 一時ファイルを削除中..."
find . -type f -name "*.pyc" -delete 2> /dev/null || true
find . -type d -name "__pycache__" -exec rm -rf {} + 2> /dev/null || true
find . -type d -name "*.egg-info" -exec rm -rf {} + 2> /dev/null || true
echo "✅ クリーンアップ完了"
;;
"help" | "--help" | "-h")
show_help
;;
*)
echo "❌ 不明なコマンド: $1"
echo ""
show_help
exit 1
;;
esac