diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9590f7c94..f40286d44 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -73,6 +73,7 @@ Finally, check that your custom modifications haven't been added in the official
* Minor refactors and colours added to the main provisioner
* Improved output of backup and import scripts
* SHDocs added to core provisioners
+* A new `/srv/vvv` folder for files created inside the VM related to provisioning ( #2328 )
* Improved PHP configuration file installation
* Sites can now define composer create-project/install/update commands to run in their folders section in addition to the git options added in v3.5.1
* Adds a `vagrant` command inside the virtual machine to tell users they are still inside the VM and need to exit
diff --git a/Vagrantfile b/Vagrantfile
index bbb63cb0c..ffe67b757 100644
--- a/Vagrantfile
+++ b/Vagrantfile
@@ -510,7 +510,8 @@ Vagrant.configure('2') do |config|
# Disable the default synced folder to avoid overlapping mounts
config.vm.synced_folder '.', '/vagrant', disabled: true
- config.vm.provision 'file', source: "#{vagrant_dir}/version", destination: '/home/vagrant/version'
+ config.vm.provision "setup-srv-vvv", type: 'shell', keep_color: true, inline: "mkdir -p /srv/vvv"
+ config.vm.provision 'file', source: "#{vagrant_dir}/version", destination: '/srv/vvv/version'
# /srv/database/
#
@@ -686,7 +687,7 @@ Vagrant.configure('2') do |config|
unless Vagrant::Util::Platform.windows?
if Process.uid == 0
# the VM should know if vagrant was ran by a root user or using sudo
- config.vm.provision "flag-root-vagrant-command", type: 'shell', keep_color: true, inline: "mkdir -p /vagrant && touch /vagrant/provisioned_as_root"
+ config.vm.provision "flag-root-vagrant-command", type: 'shell', keep_color: true, inline: "mkdir -p /srv/vvv && touch /srv/vvv/provisioned_as_root"
end
end
diff --git a/provision/provision-helpers.sh b/provision/provision-helpers.sh
index 57f6449ad..93942579e 100755
--- a/provision/provision-helpers.sh
+++ b/provision/provision-helpers.sh
@@ -17,11 +17,18 @@ export BLUE="\033[0;38;5;4m" # 33m"
export PURPLE="\033[0;38;5;5m" # 129m"
export CRESET="\033[0m"
-
-VVV_CONFIG=/vagrant/vvv-custom.yml
-if [[ -f /vagrant/config.yml ]]; then
- VVV_CONFIG=/vagrant/config.yml
-fi
+configs=(
+ /srv/vvv/config.yml
+ /vagrant/config.yml
+ /vagrant/vvv-config.yml
+)
+VVV_CONFIG=/srv/vvv/config.yml
+for item in ${configs[*]}; do
+ if [[ -f $item ]]; then
+ VVV_CONFIG=$item
+ break
+ fi
+done
export VVV_CONFIG
export VVV_CURRENT_LOG_FILE=""
@@ -165,7 +172,7 @@ export -f network_check
#
# @arg $1 string name of the provisioner
function log_to_file() {
- local date_time=$(cat /vagrant/provisioned_at)
+ local date_time=$(cat /srv/vvv/provisioned_at)
local logfolder="/var/log/provisioners/${date_time}"
local logfile="${logfolder}/${1}.log"
mkdir -p "${logfolder}"
diff --git a/provision/provision-site.sh b/provision/provision-site.sh
index c363a6ce0..96dbe6e41 100755
--- a/provision/provision-site.sh
+++ b/provision/provision-site.sh
@@ -26,8 +26,6 @@ VVV_HOSTS=""
SUCCESS=1
-VVV_CONFIG=/vagrant/config.yml
-
. "/srv/provision/provisioners.sh"
# @description Takes 2 values, a key to fetch a value for, and an optional default value
diff --git a/provision/provision.sh b/provision/provision.sh
index 2f10746bc..ce7953868 100755
--- a/provision/provision.sh
+++ b/provision/provision.sh
@@ -9,14 +9,17 @@
. "/srv/provision/core/env/homedir/.bash_aliases"
# cleanup
-mkdir -p /vagrant
-rm -rf /vagrant/failed_provisioners
-mkdir -p /vagrant/failed_provisioners
+mkdir -p /srv/vvv
+if [[ ! -d /vagrant ]]; then
+ ln -s /srv/vvv /vagrant
+fi
+rm -rf /srv/vvv/failed_provisioners
+mkdir -p /srv/vvv/failed_provisioners
-rm -f /vagrant/provisioned_at
-rm -f /vagrant/version
-rm -f /vagrant/vvv-custom.yml
-rm -f /vagrant/config.yml
+rm -f /srv/vvv/provisioned_at
+rm -f /srv/vvv/version
+rm -f /srv/vvv/vvv-custom.yml
+rm -f /srv/vvv/config.yml
if [ -x "$(command -v ntpdate)" ]; then
echo " * Syncing clocks"
@@ -29,17 +32,15 @@ touch /vagrant/provisioned_at
echo $(date "+%Y.%m.%d_%H-%M-%S") > /vagrant/provisioned_at
# copy over version and config files
-cp -f /home/vagrant/version /vagrant
-cp -f /srv/config/config.yml /vagrant
-
-chmod 0644 /vagrant/config.yml
-chmod 0644 /vagrant/version
-chmod 0644 /vagrant/provisioned_at
+cp -f /home/vagrant/version /srv/vvv
+cp -f /srv/config/config.yml /srv/vvv
-# change ownership for /vagrant folder
-chown -R vagrant:vagrant /vagrant
+sudo chmod 0644 /srv/vvv/config.yml
+sudo chmod 0644 /srv/vvv/version
+sudo chmod 0644 /srv/vvv/provisioned_at
-export VVV_CONFIG=/vagrant/config.yml
+# change ownership for /srv/vvv folder
+sudo chown -R vagrant:vagrant /srv/vvv
# initialize provisioner helpers a bit later
. "/srv/provision/provisioners.sh"
@@ -64,9 +65,6 @@ export VVV_PACKAGE_REMOVAL_LIST=()
. "/srv/provision/core/wp-cli/provision.sh"
. "/srv/provision/core/phpcs/provision.sh"
-### SCRIPT
-#set -xv
-
vvv_hook init
if ! network_check; then
@@ -96,7 +94,5 @@ vvv_hook after_packages
vvv_info " * Finalizing"
vvv_hook finalize
-#set +xv
# And it's done
-
provisioner_success
diff --git a/provision/provisioners.sh b/provision/provisioners.sh
index 4a7f1f7aa..7da21a37b 100755
--- a/provision/provisioners.sh
+++ b/provision/provisioners.sh
@@ -18,7 +18,7 @@ VVV_PROVISIONER_RUNNING=""
# @arg $1 string Name of the provisioner
function provisioner_begin() {
VVV_PROVISIONER_RUNNING="${1:-${FUNCNAME[1]}}"
- touch "/vagrant/failed_provisioners/provisioner-${VVV_PROVISIONER_RUNNING}"
+ touch "/srv/vvv/failed_provisioners/provisioner-${VVV_PROVISIONER_RUNNING}"
log_to_file "provisioner-${VVV_PROVISIONER_RUNNING}"
vvv_success " ▷ Running the '${VVV_PROVISIONER_RUNNING}' provisioner..."
start_seconds="$(date +%s)"
@@ -33,7 +33,7 @@ function provisioner_end() {
local elapsed="$(( end_seconds - start_seconds ))"
if [[ $PROVISION_SUCCESS -eq "0" ]]; then
vvv_success " ✔ The '${VVV_PROVISIONER_RUNNING}' provisioner completed in ${elapsed} seconds."
- rm -f "/vagrant/failed_provisioners/provisioner-${VVV_PROVISIONER_RUNNING}"
+ rm -f "/srv/vvv/failed_provisioners/provisioner-${VVV_PROVISIONER_RUNNING}"
else
vvv_error " ! The '${VVV_PROVISIONER_RUNNING}' provisioner ran into problems, the full log is available at '${VVV_CURRENT_LOG_FILE}'. It completed in ${elapsed} seconds."
fi
diff --git a/provision/tests/provisioners.sh b/provision/tests/provisioners.sh
index b2418cd5a..489a5a460 100644
--- a/provision/tests/provisioners.sh
+++ b/provision/tests/provisioners.sh
@@ -155,10 +155,18 @@ function provision_main() {
vvv_run_provisioner /srv/provision/provision.sh
fi
- # refresh VVV_CONFIG, as the main provisioner actually creates the /vagrant/config.yml
- VVV_CONFIG=/vagrant/vvv-custom.yml
- if [[ -f /vagrant/config.yml ]]; then
- VVV_CONFIG=/vagrant/config.yml
- fi
+ # refresh VVV_CONFIG, as the main provisioner actually creates the /srv/vvv/config.yml
+ configs=(
+ /srv/vvv/config.yml
+ /vagrant/config.yml
+ /vagrant/vvv-config.yml
+ )
+ VVV_CONFIG=/srv/vvv/config.yml
+ for item in ${configs[*]}; do
+ if [[ -f $item ]]; then
+ VVV_CONFIG=$item
+ break
+ fi
+ done
export VVV_CONFIG
}