Skip to content

Commit 7446aee

Browse files
author
Alexander Paliarush
committed
Guest configs editable from IDE (#29)
1 parent 7abac21 commit 7446aee

File tree

3 files changed

+59
-42
lines changed

3 files changed

+59
-42
lines changed

scripts/guest/link_configs

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,33 @@
11
#!/usr/bin/env bash
2-
# See unlink_configs script
2+
3+
function process_configs () {
4+
configs_path=$1
5+
configs=$2
6+
for config in "${configs[@]}"
7+
do
8+
if [ ! -d /vagrant/etc/guest/${config} ] && [ ! -f /vagrant/etc/guest/${config} ]; then
9+
if [ -d ${configs_path}/${config} ] || [ -f ${configs_path}/${config} ]; then
10+
sudo rm -rf "${configs_path}/${config}.back"
11+
sudo cp -rp ${configs_path}/${config} "${configs_path}/${config}.back"
12+
sudo mv ${configs_path}/${config} /vagrant/etc/guest/${config}
13+
sudo ln -s /vagrant/etc/guest/${config} ${configs_path}/${config}
14+
fi
15+
fi
16+
done
17+
}
318

419
# Enable trace printing and exit on the first error
520
set -ex
621

722
# Make guest configs visible and editable in the host IDE
823

924
# Configs located under /etc/*
25+
config_dir="/etc"
26+
# See unlink_configs script
1027
configs=( apache2 php mysql varnish rabbitmq crontab cron.d timezone hosts profile profile.d )
11-
for config in "${configs[@]}"
12-
do
13-
if [ ! -d /vagrant/etc/guest/${config} ] && [ ! -f /vagrant/etc/guest/${config} ]; then
14-
if [ -d /etc/${config} ] || [ -f /etc/${config} ]; then
15-
mv /etc/${config} /vagrant/etc/guest/${config}
16-
ln -s /vagrant/etc/guest/${config} /etc/${config}
17-
fi
18-
fi
19-
done
28+
process_configs ${config_dir} ${configs}
2029

2130
# Configs located under ~/*
31+
config_dir="/home/vagrant"
2232
configs=( .bashrc .composer .profile )
23-
for config in "${configs[@]}"
24-
do
25-
if [ ! -d /vagrant/etc/guest/${config} ] && [ ! -f /vagrant/etc/guest/${config} ]; then
26-
if [ -d /home/vagrant/${config} ] || [ -f /home/vagrant/${config} ]; then
27-
mv /home/vagrant/${config} /vagrant/etc/guest/${config}
28-
ln -s /vagrant/etc/guest/${config} /home/vagrant/${config}
29-
fi
30-
fi
31-
done
33+
process_configs ${config_dir} ${configs}

scripts/guest/unlink_configs

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,32 @@
11
#!/usr/bin/env bash
2-
# See link_configs script
2+
3+
function process_configs () {
4+
configs_path=$1
5+
configs=$2
6+
for config in "${configs[@]}"
7+
do
8+
if [ -L ${config_dir}/${config} ] && [ -e ${config_dir}/${config} ]; then
9+
sudo rm ${config_dir}/${config}
10+
sudo mv /vagrant/etc/guest/${config} ${config_dir}/${config}
11+
elif [ ! -e ${config_dir}/${config} ] && [ -e "${config_dir}/${config}.back" ]; then
12+
sudo rm -rf ${config_dir}/${config}
13+
sudo cp -rp "${config_dir}/${config}.back" ${config_dir}/${config}
14+
fi
15+
done
16+
}
317

418
# Enable trace printing and exit on the first error
519
set -ex
620

721
# Revert configs before shutdown or reboot to allow proper services initialization on booting
822

923
# Configs located under /etc/*
10-
configs=( apache2 php mysql varnish rabbitmq init.d crontab cron.d timezone hosts )
11-
for config in "${configs[@]}"
12-
do
13-
if [ -L /etc/${config} ]; then
14-
sudo rm /etc/${config}
15-
sudo mv /vagrant/etc/guest/${config} /etc/${config}
16-
fi
17-
done
24+
config_dir="/etc"
25+
# See link_configs script
26+
configs=( apache2 php mysql varnish rabbitmq crontab cron.d timezone hosts profile profile.d )
27+
process_configs ${config_dir} ${configs}
1828

1929
# Configs located under ~/*
30+
config_dir="/home/vagrant"
2031
configs=( .bashrc .composer .profile )
21-
for config in "${configs[@]}"
22-
do
23-
if [ -L /home/vagrant/${config} ]; then
24-
sudo rm /home/vagrant/${config}
25-
sudo mv /vagrant/etc/guest/${config} /home/vagrant/${config}
26-
fi
27-
done
32+
process_configs ${config_dir} ${configs}

scripts/provision/configure_environment_recurring.sh

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,26 @@
33
# Enable trace printing and exit on the first error
44
set +x
55

6-
link_configs
6+
vagrant_dir="/vagrant"
7+
8+
# Remove configs from host in case of force stop of virtual machine before linking restored ones
9+
cd ${vagrant_dir}/etc && mv guest/.gitignore guest_gitignore.back && rm -rf guest && mkdir guest && mv guest_gitignore.back guest/.gitignore
10+
bash ${vagrant_dir}/scripts/guest/link_configs
711

812
# Make sure configs are restored on system halt and during reboot
9-
if [ ! -f /etc/init.d/K04-unlink-configs ]; then
10-
ln -s /vagrant/scripts/guest/unlink_configs /etc/init.d/K04-unlink-configs
11-
ln -s /etc/init.d/K04-unlink-configs /etc/rc0.d/K04-unlink-configs
12-
ln -s /etc/init.d/K04-unlink-configs /etc/rc6.d/K04-unlink-configs
13+
rm -f /etc/init.d/unlink-configs
14+
cp ${vagrant_dir}/scripts/guest/unlink_configs /etc/init.d/unlink-configs
15+
if [ ! -f /etc/rc0.d/K04-unlink-configs ]; then
16+
ln -s /etc/init.d/unlink-configs /etc/rc0.d/K04-unlink-configs
17+
ln -s /etc/init.d/unlink-configs /etc/rc1.d/S04-unlink-configs
18+
ln -s /etc/init.d/unlink-configs /etc/rc2.d/S04-unlink-configs
19+
ln -s /etc/init.d/unlink-configs /etc/rc3.d/S04-unlink-configs
20+
ln -s /etc/init.d/unlink-configs /etc/rc4.d/S04-unlink-configs
21+
ln -s /etc/init.d/unlink-configs /etc/rc5.d/S04-unlink-configs
22+
ln -s /etc/init.d/unlink-configs /etc/rc6.d/K04-unlink-configs
1323
fi
1424

1525
# Upgrade existing environment
16-
if [ -f /vagrant/.idea/deployment.xml ]; then
17-
sed -i.back "s|magento2ce/var/generation|magento2ce/var|g" "/vagrant/.idea/deployment.xml"
26+
if [ -f ${vagrant_dir}/.idea/deployment.xml ]; then
27+
sed -i.back "s|magento2ce/var/generation|magento2ce/var|g" "${vagrant_dir}/.idea/deployment.xml"
1828
fi

0 commit comments

Comments
 (0)