|
@@ -40,7 +40,8 @@ CONFIGURATION_FILE="$HOME/${PROJECT_NAME}.cfg"
|
40
|
40
|
|
41
|
41
|
# if this is blank then just use the default repos
|
42
|
42
|
FRIENDS_MIRRORS_SERVER=
|
43
|
|
-REPOS=
|
|
43
|
+UTILS_REPOS=
|
|
44
|
+INSTALLED_APPS_REPOS=
|
44
|
45
|
MY_MIRRORS_PASSWORD=
|
45
|
46
|
FRIENDS_MIRRORS_PASSWORD=
|
46
|
47
|
NEW_MIRRORS='no'
|
|
@@ -51,12 +52,13 @@ if [ ! -f $MAIN_COMMAND ]; then
|
51
|
52
|
MAIN_COMMAND=/usr/bin/${PROJECT_NAME}
|
52
|
53
|
fi
|
53
|
54
|
|
54
|
|
-REPOS=($(cat ${MAIN_COMMAND} /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-* /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-* | grep "_REPO=\"" | grep -v "(cat " | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
|
|
55
|
+# local repos for utils
|
|
56
|
+UTILS_REPOS=($(cat ${MAIN_COMMAND} /usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-* /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-* | grep "_REPO=\"" | grep -v "(cat " | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
|
55
|
57
|
|
56
|
58
|
UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
|
57
|
59
|
for f in $UTILS_FILES
|
58
|
60
|
do
|
59
|
|
- source $f
|
|
61
|
+ source $f
|
60
|
62
|
done
|
61
|
63
|
|
62
|
64
|
# obtain the mirrors password if it exists
|
|
@@ -116,29 +118,57 @@ function enable_mirrors_via_onion {
|
116
|
118
|
fi
|
117
|
119
|
}
|
118
|
120
|
|
119
|
|
-function update_repos_from_friend {
|
120
|
|
- if [ ! $FRIENDS_MIRRORS_SERVER ]; then
|
121
|
|
- return
|
122
|
|
- fi
|
123
|
|
- if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
|
124
|
|
- return
|
125
|
|
- fi
|
|
121
|
+function update_installed_apps_repos {
|
|
122
|
+ INSTALLED_APPS_REPOS=()
|
|
123
|
+ FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
|
126
|
124
|
|
|
125
|
+ function_check app_is_installed
|
|
126
|
+
|
|
127
|
+ # for all the app scripts
|
|
128
|
+ for filename in $FILES
|
|
129
|
+ do
|
|
130
|
+ app_name=$(echo "${filename}" | awk -F '-app-' '{print $2}')
|
|
131
|
+ if [[ "$(app_is_installed ${app_name})" == "1" ]]; then
|
|
132
|
+ APP_REPOS=($(cat ${MAIN_COMMAND} $filename | grep "_REPO=\"" | grep -v "(cat " | uniq -u | sed 's|${PROJECT_NAME}|'"${PROJECT_NAME}"'|g'))
|
|
133
|
+ for line in "${APP_REPOS[@]}"
|
|
134
|
+ do
|
|
135
|
+ INSTALLED_APPS_REPOS+=("${line}")
|
|
136
|
+ done
|
|
137
|
+ fi
|
|
138
|
+ done
|
|
139
|
+}
|
|
140
|
+
|
|
141
|
+function update_repos_from_friend_base {
|
|
142
|
+ syncrepos=${1}
|
127
|
143
|
new_repos=()
|
128
|
|
- for line in "${REPOS[@]}"
|
|
144
|
+ for line in $syncrepos
|
129
|
145
|
do
|
130
|
146
|
repo_name=$(echo "$line" | awk -F '=' '{print $1}')
|
131
|
147
|
mirrors_name=$(echo "$repo_name" | sed "s|_REPO||g" | awk '{print tolower($0)}')
|
132
|
|
- #repo_url=$(echo "$line" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
133
|
148
|
friends_repo_url="ssh://mirrors@${FRIENDS_MIRRORS_SERVER}:${FRIENDS_MIRRORS_SSH_PORT}/home/mirrors/${mirrors_name}"
|
134
|
149
|
new_line="${repo_name}=\"${friends_repo_url}\""
|
135
|
150
|
new_repos+=($new_line)
|
136
|
151
|
done
|
137
|
|
- REPOS=("${new_repos[@]}")
|
138
|
152
|
}
|
139
|
153
|
|
140
|
|
-function sync_mirrors_repos {
|
141
|
|
- for line in "${REPOS[@]}"
|
|
154
|
+function update_repos_from_friend {
|
|
155
|
+ if [ ! $FRIENDS_MIRRORS_SERVER ]; then
|
|
156
|
+ return
|
|
157
|
+ fi
|
|
158
|
+ if [ ${#FRIENDS_MIRRORS_SERVER} -lt 2 ]; then
|
|
159
|
+ return
|
|
160
|
+ fi
|
|
161
|
+
|
|
162
|
+ update_repos_from_friend_base "${UTILS_REPOS[@]}"
|
|
163
|
+ UTILS_REPOS=("${new_repos[@]}")
|
|
164
|
+
|
|
165
|
+ update_repos_from_friend_base "${INSTALLED_APPS_REPOS[@]}"
|
|
166
|
+ INSTALLED_APPS_REPOS=("${new_repos[@]}")
|
|
167
|
+}
|
|
168
|
+
|
|
169
|
+function sync_mirrors_base {
|
|
170
|
+ syncrepos=${1}
|
|
171
|
+ for line in $syncrepos
|
142
|
172
|
do
|
143
|
173
|
repo_name=$(echo "$line" | awk -F '=' '{print $1}')
|
144
|
174
|
repo_url=$(echo "$line" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}')
|
|
@@ -172,6 +202,11 @@ function sync_mirrors_repos {
|
172
|
202
|
chown -R mirrors:mirrors /home/mirrors
|
173
|
203
|
}
|
174
|
204
|
|
|
205
|
+function sync_mirrors_repos {
|
|
206
|
+ sync_mirrors_base "${UTILS_REPOS[@]}"
|
|
207
|
+ sync_mirrors_base "${INSTALLED_APPS_REPOS[@]}"
|
|
208
|
+}
|
|
209
|
+
|
175
|
210
|
while [[ $# > 1 ]]
|
176
|
211
|
do
|
177
|
212
|
key="$1"
|
|
@@ -212,6 +247,7 @@ done
|
212
|
247
|
|
213
|
248
|
create_mirrors_user
|
214
|
249
|
enable_mirrors_via_onion
|
|
250
|
+update_installed_apps_repos
|
215
|
251
|
update_repos_from_friend
|
216
|
252
|
sync_mirrors_repos
|
217
|
253
|
|