-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate_local_diff.sh
133 lines (102 loc) · 3.53 KB
/
update_local_diff.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#!/bin/bash
INSTALLED=/C/oit/${COURSEYEAR}-byod/`coursegit`
INSTALLED_ETC=${INSTALLED}/etc/
INSTALLED_BIN=${INSTALLED}/usr/local/bin/
REPO=./PortableGit
REPO_ETC=${COURSEYEAR}/etc/
REPO_BIN=${COURSEYEAR}/local/bin/
function ConfirmExecution() {
echo "----------------------------"
echo "テスト環境(${INSTALLED})からリポジトリに同期しますか?"
echo " 実行する場合は yes、実行をキャンセルする場合は no と入力して下さい."
read input
if [ -z $input ] ; then
echo " yes または no を入力して下さい."
ConfirmExecution
elif [ $input = 'yes' ] || [ $input = 'YES' ] || [ $input = 'y' ] ; then
echo " 同期を実行します."
ConfirmVersionUpdate
RsyncEnvironment ${INSTALLED_ETC} ${REPO_ETC}
RsyncEnvironment ${INSTALLED_BIN} ${REPO_BIN}
elif [ $input = 'no' ] || [ $input = 'NO' ] || [ $input = 'n' ] ; then
echo " 同期を実行しません."
else
echo " yes または no を入力して下さい."
ConfirmExecution
fi
}
function ConfirmVersionUpdate() {
echo "----------------------------"
echo "getversionのバージョン番号を更新しますか?"
echo " 更新する場合は yes、しない場合は no と入力して下さい."
read input
if [ -z $input ] ; then
echo " yes または no を入力して下さい."
ConfirmVersionUpdate
elif [ $input = 'yes' ] || [ $input = 'YES' ] || [ $input = 'y' ] ; then
echo " getversionのバージョン番号を更新します."
UpdateVersionNumber local
elif [ $input = 'no' ] || [ $input = 'NO' ] || [ $input = 'n' ] ; then
echo " バージョン番号を更新しません."
else
echo " yes または no を入力して下さい."
ConfirmVersionUpdate
fi
}
function RsyncEnvironment() {
echo "$1から$2への同期を行います $3"
rsync -av --checksum $3 \
--exclude='bash.bash_logout' \
--exclude='bash.bashrc' \
--exclude='DIR_COLORS' \
--exclude='docx2txt.config' \
--exclude='fstab' \
--exclude='hosts' \
--exclude='inputrc' \
--exclude='msystem' \
--exclude='mtab' \
--exclude='nanorc' \
--exclude='networks' \
--exclude='package-versions.txt' \
--exclude='pkcs11' \
--exclude='pki' \
--exclude='protocols' \
--exclude='services' \
--exclude='ssh' \
--exclude='tigrc' \
--exclude='vimrc' \
$1 $2
}
function CheckDiff() {
ETC_IGNORED="-v -e bash.bash_logout
-v -e bash.bashrc
-v -e DIR_COLORS
-v -e docx2txt.config
-v -e fstab
-v -e hosts
-v -e inputrc
-v -e msystem
-v -e mtab
-v -e nanorc
-v -e networks
-v -e package-versions.txt
-v -e pkcs11
-v -e pki
-v -e protocols
-v -e services
-v -e ssh
-v -e tigrc
-v -e vimrc"
diff -r ${INSTALLED_ETC} ${REPO_ETC} | grep ${ETC_IGNORED}
diff ${INSTALLED_BIN} ${REPO_BIN}
}
# arg $1 is local
function UpdateVersionNumber() {
echo "getversionを更新します"
sed -i -E "s/\[local\][0-9]{12}/\[localenv\]`date "+%Y%m%d%H%M"`/g" ${INSTALLED_BIN}getversion
sed -i -E "s/\[local\][0-9]{8}/\[localenv\]`date "+%Y%m%d"`/g" ${INSTALLED_BIN}getversion
}
RsyncEnvironment ${INSTALLED_ETC} ${REPO_ETC} --dry-run
RsyncEnvironment ${INSTALLED_BIN} ${REPO_BIN} --dry-run
CheckDiff
ConfirmExecution