diff options
Diffstat (limited to 'recipes-containers/docker-compose/relocation.inc')
-rw-r--r-- | recipes-containers/docker-compose/relocation.inc | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/recipes-containers/docker-compose/relocation.inc b/recipes-containers/docker-compose/relocation.inc index 469361ac..bb3aa599 100644 --- a/recipes-containers/docker-compose/relocation.inc +++ b/recipes-containers/docker-compose/relocation.inc | |||
@@ -197,13 +197,39 @@ do_compile:prepend() { | |||
197 | site_dest=$(echo $s | cut -d: -f1) | 197 | site_dest=$(echo $s | cut -d: -f1) |
198 | site_source=$(echo $s | cut -d: -f2) | 198 | site_source=$(echo $s | cut -d: -f2) |
199 | force_flag=$(echo $s | cut -d: -f3) | 199 | force_flag=$(echo $s | cut -d: -f3) |
200 | |||
200 | mkdir -p vendor.copy/$site_dest | 201 | mkdir -p vendor.copy/$site_dest |
202 | |||
203 | # create a temporary exclude file | ||
204 | exclude_file=$(mktemp) | ||
205 | |||
206 | find vendor.fetch/$site_source -type d -print0 | \ | ||
207 | xargs -0 du -sBM 2>/dev/null | \ | ||
208 | awk '{if ($1+0 > 500) print substr($0, index($0,$2))}' | \ | ||
209 | sed 's|^vendor.fetch/||' > "$exclude_file" | ||
210 | |||
201 | if [ -n "$force_flag" ]; then | 211 | if [ -n "$force_flag" ]; then |
202 | echo "[INFO] $site_dest: force copying .go files" | 212 | echo "[INFO] $site_dest: force copying .go files" |
203 | rm -rf vendor.copy/$site_dest | 213 | rm -rf vendor.copy/$site_dest |
204 | rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest | 214 | rsync -a \ |
215 | --exclude='vendor/' \ | ||
216 | --exclude='.git/' \ | ||
217 | --exclude-from="$exclude_file" \ | ||
218 | vendor.fetch/$site_source/ vendor.copy/$site_dest | ||
205 | else | 219 | else |
206 | [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ] && { echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" ; true ; } || { echo "[INFO] $site_dest: copying .go files" ; rsync -a --exclude='vendor/' --exclude='.git/' vendor.fetch/$site_source/ vendor.copy/$site_dest ; } | 220 | if [ -n "$(ls -A vendor.copy/$site_dest/*.go 2> /dev/null)" ]; then |
221 | echo "[INFO] vendor.fetch/$site_source -> $site_dest: go copy skipped (files present)" | ||
222 | true | ||
223 | else | ||
224 | echo "[INFO] $site_dest: copying .go files" | ||
225 | rsync -a \ | ||
226 | --exclude='vendor/' \ | ||
227 | --exclude='.git/' \ | ||
228 | --exclude-from="$exclude_file" \ | ||
229 | vendor.fetch/$site_source/ vendor.copy/$site_dest | ||
230 | fi | ||
207 | fi | 231 | fi |
232 | |||
233 | rm -f "$exclude_file" | ||
208 | done | 234 | done |
209 | } | 235 | } |