Skip to content

Commit

Permalink
✨ UniPro用のgittoolを開発
Browse files Browse the repository at this point in the history
作業環境を同じにするため。
  • Loading branch information
yuito-it committed Jan 21, 2024
0 parents commit fe7eb2c
Show file tree
Hide file tree
Showing 3 changed files with 152 additions and 0 deletions.
48 changes: 48 additions & 0 deletions .githooks/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash
COMMIT_MSG=$1
prefix=$(head -n 1 $COMMIT_MSG | awk '{ print $1 }')
emoji=""
case $prefix in
"fix:")
emoji=":bug:"
;;
"feat:")
emoji=":sparkles:"
;;
"hammer:")
emoji=":hammer:"
;;
"delete:")
emoji=":zap:"
;;
"uppkg:")
emoji=":arrow_up:"
;;
"docs:")
emoji=":memo:"
;;
"style:")
emoji=":art:"
;;
"refactor:")
emoji=":recycle:"
;;
"chore:")
emoji=":hammer:"
;;
"tag:")
emoji=":bookmark:"
;;
"typo:")
emoji=":pencil2:"
;;
*)
echo "The specified prefix is undefined.";
exit 1
;;
esac

sed -i "s/$prefix/$emoji/" $COMMIT_MSG

echo $prefix
exit 0
27 changes: 27 additions & 0 deletions .gitmessage
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# ==== Format ====
# ${prefix}: 実装の概要を50文字以下で記述
# ex)fix:ユーザー情報にnameが足りないのでnameを追加
#
# コミット本文(50文字で収まらない場合はこちらに)...
#一行目の上に#をつけずに入力してください。

# ==== Prefix ====
# feat 新規機能、新規ファイル追加
# delete ファイル削除
# fix バグ修正
# style 空白、セミコロン、行、コーディングフォーマットなどの修正
# refactor リファクタリング
# uppkg 依存関係のアップグレード
# chore ビルド、補助ツール、ライブラリ関連、開発環境変更、更新等
# docs ドキュメントのみ修正
# tag タグの作成
# typo タイポ

# ==== Rules ====
# 1. コミット本文を記述する場合は、概要とコミット本文の間に空行1行あける
# 2. 概要は50文字以下で記述する
# 3. 概要の末尾はピリオドで終わらない
# 4. 概要は命令法で記述する
# 5. 本文は72文字で改行する
# 6. 本文ではhowではなくwhatとwhyを記述する

77 changes: 77 additions & 0 deletions git-unipro
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
#!/bin/bash
echo "UniProject Git Tool"

subcommand="$1"
shift

msg_hook="#!/bin/bash\n
COMMIT_MSG=\$1\n
prefix=\$(head -n 1 \$COMMIT_MSG | awk '{ print \$1 }')\n
emoji=\"\"\n
case \$prefix in\n
\"fix:\")\n
emoji=\":bug:\"\n
;;\n
\"feat:\")\n
emoji=\":sparkles:\"\n
;;\n
\"hammer:\")\n
emoji=\":hammer:\"\n
;;\n
\"delete:\")\n
emoji=\":zap:\"\n
;;\n
\"uppkg:\")\n
emoji=\":arrow_up:\"\n
;;\n
\"docs:\")\n
emoji=\":memo:\"\n
;;\n
\"style:\")\n
emoji=\":art:\"\n
;;\n
\"refactor:\")\n
emoji=\":recycle:\"\n
;;\n
\"chore:\")\n
emoji=\":hammer:\"\n
;;\n
\"tag:\")\n
emoji=\":bookmark:\"\n
;;\n
\"typo:\")\n
emoji=\":pencil2:\"\n
;;\n
*)\n
echo \"The specified prefix is undefined.\";\n
exit 1\n
;;\n
esac\n
\n
sed -i \"s/\$prefix/\$emoji/\" \$COMMIT_MSG\n
\n
echo \$prefix \n
exit 0"

msg_template="# ==== Format ====\n# \${prefix}: 実装の概要を50文字以下で記述\n# ex)fix:ユーザー情報にnameが足りないのでnameを追加\n#\n# コミット本文(50文字で収まらない場合はこちらに)...\n#一行目の上に#をつけずに入力してください。\n\n# ==== Prefix ====\n# feat 新規機能、新規ファイル追加\n# delete ファイル削除\n# fix バグ修正\n# style 空白、セミコロン、行、コーディングフォーマットなどの修正\n# refactor リファクタリング\n# uppkg 依存関係のアップグレード\n# chore ビルド、補助ツール、ライブラリ関連、開発環境変更、更新等\n# docs ドキュメントのみ修正\n# tag タグの作成\n# typo タイポ\n\n# ==== Rules ====\n# 1. コミット本文を記述する場合は、概要とコミット本文の間に空行1行あける\n# 2. 概要は50文字以下で記述する\n# 3. 概要の末尾はピリオドで終わらない\n# 4. 概要は命令法で記述する\n# 5. 本文は72文字で改行する\n# 6. 本文ではhowではなくwhatとwhyを記述する\n"

case $subcommand in
i | init)
echo "Installing..."
echo "Creating .githooks Directory..."
mkdir .githooks
echo "Copying hooks files..."
echo -e $msg_hook > ./.githooks/commit-msg
echo "Copying .gitmessage file..."
echo -e $msg_template > .gitmessage
echo "Config git..."
git config --local core.hooksPath .githooks
git config commit.template .gitmessage
;;
--help)
;;
*)
echo "エラー: 無効なオプション、コマンドです。"
;;
esac

0 comments on commit fe7eb2c

Please sign in to comment.