#!/bin/bash
echo "**Index**" >README.md
echo "" >>README.md
# フォルダ・ファイルが多くなると飛ぶのが面倒なので、[TOC]追加
echo "[TOC]" >>README.md
echo "" >>README.md
echo "---" >>README.md
# ファイルへのリンク部分を出力する関数
file_echo () {
find $1 -maxdepth 1 -type f -name "*.md" | while read FILE ; do
local FILE2=`echo "${FILE##*/}" | sed -e "s/\.md//"`
echo "- [$FILE2](${FILE})" >>README.md
done
}
# フォルダごとに見出しをつけて改行してファイル部分も出力する再帰呼出し用関数
folder_echo () {
find $1 -maxdepth 1 -type d | while read DIR ; do
if test "$DIR" != "$1" ; then
local MD_FILE_LIST=`find $DIR -type f -name "*.md"`
if test "$MD_FILE_LIST" == "" ; then
continue
fi
local HEADING="##"
if test $2 != 0 ; then
# 階層ごとに見出しレベルを下げたかったので、ここで#を追加する
for i in `seq 1 $2` ; do
HEADING+="#"
done
else
echo "" >>README.md
fi
echo "" >>README.md
# フォルダごとに見出しをつける
echo "$HEADING ${DIR##*/}" >>README.md
local MD_FILE_LIST2=`find $DIR -mindepth 1 -type f -name "*.md"`
# 小フォルダ内に*.mdがある場合、再帰呼出し
if test "$MD_FILE_LIST2" != "" ; then
folder_echo "$DIR" `expr $2 + 1`
fi
local MD_FILE_LIST3=`find $DIR -maxdepth 1 -type f -name "*.md"`
# フォルダ内にファイルがある場合、ファイル用関数呼び出し
if test "$MD_FILE_LIST3" != "" ; then
echo "" >>README.md
file_echo "$DIR/"
fi
fi
done
}
folder_echo . 0
echo "" >>README.md
# Bitbucketでスペースを開けるだけだと、最後辺りのリンクによくわからんpタグがつくため、空白の見出し追加
echo "# " >>README.md
file_echo .