#!/bin/bash

# 指定されたフォルダを変数に格納
relt="$1"
reld="$2"

# 親フォルダの指定がなかった場合は終了
if [ "a${relt}" = "a" ] ; then
	echo フォルダを指定してください。
	echo 例1: mkdmy /hoge/fuga
	echo 例2: mkdmy ./base ./dummy
	exit 1
fi

# 親フォルダが存在しなかった場合も終了
if [ ! -d "${relt}" ]; then
	echo フォルダが存在しません。
	exit 1
fi

# 区切り文字を改行に
_IFS="$IFS";IFS="
"

# 親フォルダの絶対パスを取得し、ダミーパスを生成
abs=$(cd $(dirname "${relt}") && pwd)/$(basename "${relt}")

if [ "a${2}" = "a" ] ; then
	dmy=$(cd $(dirname "${relt}") && pwd)/$(basename "${relt}")_mkdmy_
else
	dmy=$(cd $(dirname "${reld}") && pwd)/$(basename "${reld}")
fi
lst="${dmy}/_mkdmylst_"

# ダミーフォルダを作成
mkdir "${dmy}"

# 親フォルダへ移動しリストを作成
cd "${abs}"
find . | tail -n +2 > "${lst}"

# リストを順番に処理
for i in `cat "${lst}" | LANG=C sort` ; do
	echo "${i}"

#	# フォルダが存在する場合はダミー内にmkdir
	if [ -d "${i}" ]; then
		cd "${dmy}"
		mkdir -p "${i}"
		cd "${abs}"
	fi

#	# ファイルが存在する場合はダミー内にtouch
	if [ -f "${i}" ]; then
		cd "${dmy}"
		touch "${i}"
		cd "${abs}"
	fi
done

# 一時ファイルを削除
rm "${lst}"

# 区切り文字を戻す
IFS="$_IFS"
