Skip to content

Instantly share code, notes, and snippets.

@takke
Created December 6, 2019 08:31
Show Gist options
  • Save takke/c9b7723b250b41f76aca09c3e35f9547 to your computer and use it in GitHub Desktop.
Save takke/c9b7723b250b41f76aca09c3e35f9547 to your computer and use it in GitHub Desktop.
Java -> Kotlin 変換で使ってるスクリプト
#!/bin/sh
# D or A のファイルを列挙する
COUNT=$(git status -s --untracked-files=no | grep "^[DA]" | awk '{ print $2 }' | wc -l)
FILES=$(git status -s --untracked-files=no | grep "^[DA]" | awk '{ print $2 }')
# ファイル数が 2 で、同一ファイル名であれば fix を実行する
echo "D or A ファイル数 : $COUNT"
#echo $FILES
for X in $FILES; do
echo $X
done
if [ $COUNT -ne 2 ]; then
echo "削除+追加ファイル数が2ではないので続行できません"
exit -1
fi
# ユーザー確認
for X in $FILES; do
TARGET=$X
break
done
echo ""
echo "-----"
echo "$TARGET"
echo "-----"
read -p "上記のファイルを modified に変換します。よろしいですか?(y/N)" yn
case "$yn" in
[yY]*) ;;
*) echo "abort."; exit ;;
esac
# 変換実行
./fix_mv.sh $TARGET
#!/bin/sh
if [ $# -eq 1 ]; then
# パラメータが1つの場合は、*.java または *.kt を受け付け、.java と .kt を生成する
case "$1" in
*\.java | *\.kt)
echo "java or kotlin file $1"
PATH_WITHOUT_EXT=${1%.*}
JAVA_PATH=$PATH_WITHOUT_EXT.java
KOTLIN_PATH=$PATH_WITHOUT_EXT.kt
echo $JAVA_PATH to $KOTLIN_PATH
;;
*)
echo "unknown file type ($1)"
exit 1
;;
esac
elif [ $# -eq 2 ]; then
JAVA_PATH=$1
KOTLIN_PATH=$2
else
echo "$0 hoge.java hoge.kt"
exit 1
fi
echo "----"
echo $JAVA_PATH to $KOTLIN_PATH
echo "----"
git status
echo "----"
mv $KOTLIN_PATH $KOTLIN_PATH.bak
git checkout HEAD $JAVA_PATH
git mv $JAVA_PATH $KOTLIN_PATH
mv $KOTLIN_PATH.bak $KOTLIN_PATH
echo "----"
git status
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment