From 8e588ca54f7254ec049f0bbe7d6ff654f53e3653 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sun, 19 Nov 2017 11:19:08 -0200 Subject: Support for multiple path pairs at provision_rsync --- kvmx | 33 +++++++++++++++++++++------------ kvmxfile | 2 +- 2 files changed, 22 insertions(+), 13 deletions(-) diff --git a/kvmx b/kvmx index f050219..4ead26a 100755 --- 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..." diff --git a/kvmxfile b/kvmxfile index 74cb4a5..1ffc352 100644 --- a/kvmxfile +++ b/kvmxfile @@ -22,7 +22,7 @@ shared_folder_mountpoint="/home/$user/code/$VM" # Format: ::,::[,...] #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/" -- cgit v1.2.3