]> gitweb.fluxo.info Git - kvmx.git/commitdiff
Support for multiple path pairs at provision_rsync
authorSilvio Rhatto <rhatto@riseup.net>
Sun, 19 Nov 2017 13:19:08 +0000 (11:19 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Sun, 19 Nov 2017 13:19:08 +0000 (11:19 -0200)
kvmx
kvmxfile

diff --git a/kvmx b/kvmx
index f05021907bf9b3030d034cf39b3f308caf9e85b1..4ead26accf02c709784c983581df226d9f4b3d0a 100755 (executable)
--- a/kvmx
+++ b/kvmx
@@ -988,18 +988,27 @@ function kvmx_provision {
   rsync -av --delete -e "$SSH_COMMAND -o Port=$SSH" $provision_rsync_opts --rsync-path "sudo rsync" $ORIG/ 127.0.0.1:$DEST/
 
   if [ ! -z "$provision_rsync" ]; then
-    ORIG="`echo $provision_rsync | cut -d ' ' -f 1`"
-    DEST="`echo $provision_rsync | cut -d ' ' -f 2`"
-
-    # Sync custom provisioners
-    if [ "$ORIG" != "$KVMX_BASE/share/provision/" ] && [ "$DEST" != "/usr/local/share/kvmx/provision/" ]; then
-      (
-      # Go inside the project folder so a relative $ORIG works
-      cd `dirname $KVMXFILE` &> /dev/null
-      echo "sudo mkdir -p `dirname $DEST`" | kvmx_ssh
-      rsync -av -e "$SSH_COMMAND -o Port=$SSH" $provision_rsync_opts --rsync-path "sudo rsync" $ORIG/ 127.0.0.1:$DEST/
-      )
-    fi
+    local old_ifs="$IFS"
+    IFS=","
+
+    for provision_item in $provision_rsync; do
+      IFS="$old_ifs"
+      ORIG="`echo $provision_item | cut -d ' ' -f 1`"
+      DEST="`echo $provision_item | cut -d ' ' -f 2`"
+
+      # Sync custom provisioners
+      if [ "$ORIG" != "$KVMX_BASE/share/provision/" ] && [ "$DEST" != "/usr/local/share/kvmx/provision/" ]; then
+        (
+        # Go inside the project folder so a relative $ORIG works
+        cd `dirname $KVMXFILE` &> /dev/null
+        echo "sudo mkdir -p `dirname $DEST`" | kvmx_ssh
+        rsync -av -e "$SSH_COMMAND -o Port=$SSH" $provision_rsync_opts --rsync-path "sudo rsync" $ORIG/ 127.0.0.1:$DEST/
+        )
+      fi
+      IFS=","
+    done
+
+    IFS="$old_ifs"
   fi
 
   echo "Running provision command inside the guest..."
index 74cb4a5989314dbd32470e4eb5ba668f7cb188ba..1ffc352d5f555ac1e0e0506361815307a4d9a4dd 100644 (file)
--- a/kvmxfile
+++ b/kvmxfile
@@ -22,7 +22,7 @@ shared_folder_mountpoint="/home/$user/code/$VM"
 # Format: <id1>:<host-folder1>:<guest-mountpoint1>,<id2>:<host-folder2>:<guest-mountpoint2>[,...]
 #shared_folders="shared1:.:/home/$user/code/$VM,shared2:$HOME/.local/share/app:/home/$user/.local/share/app"
 
-# Folder to sync during provisioning in the format "/host/folder /guest/folder".
+# Folder to sync during provisioning in the format "/host/folder1 /guest/folder1,/host/folder2 /guest/folder2[,...]".
 #provision_rsync="$KVMX_BASE/share/provision/ /usr/local/share/kvmx/provision/"
 #provision_rsync="puppet/ /etc/puppet/"