commit 10

This commit is contained in:
HarakaraSite
2026-02-12 00:17:42 +09:00
parent 4265769d90
commit eda5bd916d
4 changed files with 65 additions and 13 deletions

View File

@@ -1,5 +1,8 @@
#!/bin/bash
# パイプの途中でエラーが発生した場合も終了ステータスに反映させる
set -o pipefail
# スクリプトの場所 (scripts/) からプロジェクトルート (notebook/) を動的に取得
BASE_DIR=$(cd "$(dirname "$0")/.." && pwd)
OUTPUT_DIR="$BASE_DIR/explained"
@@ -15,6 +18,9 @@ fi
mkdir -p "$OUTPUT_DIR"
# ファイルが見つからない場合にワイルドカードをそのまま展開しない設定
shopt -s nullglob
# 引数がある場合はそれを使用し、ない場合は strudel/ フォルダの全mdファイルを対象にする
if [ $# -gt 0 ]; then
files=("$@")
@@ -31,25 +37,30 @@ for file in "${files[@]}"; do
filename=$(basename "$file")
# 特定のファイルやディレクトリを除外
[[ "$filename" =~ ^(Strudel Making Sound|Strudel Study)\.md$ ]] && continue
[[ "$file" =~ /(refactoring|script|explained)/ ]] && continue
# 絶対パスに変換して除外ディレクトリに含まれていないかチェック
abs_path=$(realpath "$file")
[[ "$abs_path" =~ /($OUTPUT_DIR|refactoring|script)/ ]] && continue
echo "Analyzing and fixing $filename..."
# 一時ファイルに出力
tmp_file="$OUTPUT_DIR/tmp_$filename"
( [ -f "$GEMINI_REF" ] && cat "$GEMINI_REF"; \
[ -f "$STRUDEL_REF" ] && cat "$STRUDEL_REF"; \
echo ""; cat "$SKILL_FILE"; \
echo ""; cat "$file" ) | gemini > "$tmp_file"
# ファイルを引数として直接渡すSTRUDEL_REFも必要ならここに追加
if ! gemini "$GEMINI_REF" "$STRUDEL_REF" "$SKILL_FILE" "$file" > "$tmp_file"; then
echo "Error: Gemini CLI failed to process $filename"
rm -f "$tmp_file"
continue
fi
if [ $? -eq 0 ]; then
# FILENAME: タグを検索
suggested_name=$(grep -m 1 "FILENAME:" "$tmp_file" | sed 's/FILENAME: //g' | tr -d '\r')
# ファイルが空でないか確認
if [ -s "$tmp_file" ]; then
suggested_name=$(grep -m 1 "^FILENAME:" "$tmp_file" | sed 's/^FILENAME: *//g' | tr -d '\r' | xargs)
if [ -n "$suggested_name" ]; then
# FILENAME行を除去して保存
sed '/FILENAME:/d' "$tmp_file" > "$OUTPUT_DIR/$suggested_name"
sed '/^FILENAME:/d' "$tmp_file" > "$OUTPUT_DIR/$suggested_name"
rm "$tmp_file"
echo "Done: $OUTPUT_DIR/$suggested_name"
else