-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupload.sh
executable file
·64 lines (52 loc) · 1.29 KB
/
upload.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/sh
cd "$(dirname "$0")"
# Yes/No の確認
checkYesNo() {
read YES_NO
case "$YES_NO" in
[Yy])
;;
[Nn])
exit
;;
*)
checkYesNo
esac
}
# Git コマンドが使えるか確認する
git > /dev/null 2>&1
# Git コマンドの結果を判定する
if [ $? -ne 1 ]; then
echo "ERROR: git コマンドが存在しません。インストールしてから実行してください。"
exit 1
fi
# 全てのファイルをコミット対象にする
git add .
# 変更したファイル数を取得する
DIFF_FILES=$(git diff --cached --numstat | wc -l)
# 変更したファイルがあればコミットする
if [ $DIFF_FILES -ne 0 ]; then
# コミットメッセージを入力する
echo "コミットメッセージ(変更を簡単に説明する): \c"
while [ -z $COMMIT_MESSAGE ]; do
read COMMIT_MESSAGE
done
# コミットメッセージの確認
echo "コミットメッセージは '$COMMIT_MESSAGE' でよろしいですか? [y/N]: \c"
checkYesNo
# コミットする
echo
git commit -m "$COMMIT_MESSAGE"
echo
fi
# プッシュするかの確認
echo "プッシュ(GitHubに反映)しますか? [y/N]: \c"
checkYesNo
# GitHub の変更をプルしてくる
echo
git pull --rebase
echo
# プッシュする
echo
git push
echo