|
@@ -37,6 +37,81 @@ CONFIGURATION_FILE="/root/${PROJECT_NAME}.cfg"
|
37
|
37
|
|
38
|
38
|
PROJECT_REPO="https://github.com/bashrc/${PROJECT_NAME}"
|
39
|
39
|
|
|
40
|
+FRIENDS_TROVE_SERVER=
|
|
41
|
+FRIENDS_TROVE_SSH_PORT=
|
|
42
|
+FRIENDS_TROVE_PASSWORD=
|
|
43
|
+MY_TROVE_PASSWORD=
|
|
44
|
+
|
|
45
|
+function read_repo_servers {
|
|
46
|
+ if grep -q "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE; then
|
|
47
|
+ FRIENDS_TROVE_SERVER=$(grep "FRIENDS_TROVE_SERVER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
48
|
+ fi
|
|
49
|
+ if grep -q "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE; then
|
|
50
|
+ FRIENDS_TROVE_SSH_PORT=$(grep "FRIENDS_TROVE_SSH_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
51
|
+ fi
|
|
52
|
+ if grep -q "MY_TROVE_PASSWORD" $CONFIGURATION_FILE; then
|
|
53
|
+ MY_TROVE_PASSWORD=$(grep "MY_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
54
|
+ fi
|
|
55
|
+ if grep -q "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE; then
|
|
56
|
+ FRIENDS_TROVE_PASSWORD=$(grep "FRIENDS_TROVE_PASSWORD" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
|
57
|
+ fi
|
|
58
|
+
|
|
59
|
+ if [ ! $FRIENDS_TROVE_SERVER ]; then
|
|
60
|
+ return
|
|
61
|
+ fi
|
|
62
|
+ if [ ${#FRIENDS_TROVE_SERVER} -lt 2 ]; then
|
|
63
|
+ return
|
|
64
|
+ fi
|
|
65
|
+
|
|
66
|
+ MAIN_COMMAND=/usr/local/bin/${PROJECT_NAME}
|
|
67
|
+ if [ ! -f $MAIN_COMMAND ]; then
|
|
68
|
+ MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
|
|
69
|
+ fi
|
|
70
|
+
|
|
71
|
+ REPOS=($(cat ${MAIN_COMMAND} | grep "_REPO=\"" | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
|
|
72
|
+
|
|
73
|
+ for line in "${REPOS[@]}"
|
|
74
|
+ do
|
|
75
|
+ repo_name=$(echo "$line" | awk -F '=' '{print $1}')
|
|
76
|
+ trove_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
|
|
77
|
+ friends_repo_url="ssh://trove@${FRIENDS_TROVE_SERVER}:${FRIENDS_TROVE_SSH_PORT}/home/trove/${trove_name}"
|
|
78
|
+ ${repo_name}="${friends_repo_url}"
|
|
79
|
+ done
|
|
80
|
+}
|
|
81
|
+
|
|
82
|
+function git_clone {
|
|
83
|
+ repo_url="$1"
|
|
84
|
+ destination_dir="$2"
|
|
85
|
+ if [[ "$repo_url" == "ssh:"* ]]; then
|
|
86
|
+ if [ "${FRIENDS_TROVE_SERVER}" ]; then
|
|
87
|
+ if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
|
|
88
|
+ if [ "$FRIENDS_TROVE_PASSWORD" ]; then
|
|
89
|
+ if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
|
|
90
|
+ sshpass -p "$FRIENDS_TROVE_PASSWORD" git clone "$repo_url" "$destination_dir"
|
|
91
|
+ return
|
|
92
|
+ fi
|
|
93
|
+ fi
|
|
94
|
+ fi
|
|
95
|
+ fi
|
|
96
|
+ fi
|
|
97
|
+ git clone "$repo_url" "$destination_dir"
|
|
98
|
+}
|
|
99
|
+
|
|
100
|
+function git_pull {
|
|
101
|
+ git stash
|
|
102
|
+ if [ "${FRIENDS_TROVE_SERVER}" ]; then
|
|
103
|
+ if [ ${#FRIENDS_TROVE_SERVER} -gt 2 ]; then
|
|
104
|
+ if [ "$FRIENDS_TROVE_PASSWORD" ]; then
|
|
105
|
+ if [ ${#FRIENDS_TROVE_PASSWORD} -gt 2 ]; then
|
|
106
|
+ sshpass -p "$FRIENDS_TROVE_PASSWORD" git pull
|
|
107
|
+ return
|
|
108
|
+ fi
|
|
109
|
+ fi
|
|
110
|
+ fi
|
|
111
|
+ fi
|
|
112
|
+ git pull
|
|
113
|
+}
|
|
114
|
+
|
40
|
115
|
if [ -f $CONFIGURATION_FILE ]; then
|
41
|
116
|
# read the location of the main project repo
|
42
|
117
|
if grep -q "PROJECT_REPO" $CONFIGURATION_FILE; then
|
|
@@ -46,15 +121,16 @@ fi
|
46
|
121
|
|
47
|
122
|
update-ca-certificates
|
48
|
123
|
|
|
124
|
+read_repo_servers
|
|
125
|
+
|
49
|
126
|
if [ ! -d $PROJECT_DIR ]; then
|
50
|
|
- git clone $PROJECT_REPO $PROJECT_DIR
|
|
127
|
+ git_clone $PROJECT_REPO $PROJECT_DIR
|
51
|
128
|
fi
|
52
|
129
|
|
53
|
130
|
if [ -d $PROJECT_DIR ]; then
|
54
|
131
|
if [ -f $CONFIGURATION_FILE ]; then
|
55
|
132
|
cd $PROJECT_DIR
|
56
|
|
- git stash
|
57
|
|
- git pull
|
|
133
|
+ git_pull
|
58
|
134
|
make install
|
59
|
135
|
${PROJECT_NAME} -c $CONFIGURATION_FILE
|
60
|
136
|
fi
|