+##############
+
+# fix samba configuration for screwy default of read-only in user homes.
+# why cripple a necessary feature by default?
+
+sep
+
+pattern="[#;][[:blank:]]*read only = yes"
+replacement="read only = no"
+
+# we just always do the replacement now rather than making it conditional,
+# after realizing the sentinel pattern was actually already in the file...
+# too much subtlety can get one into trouble.
+sed -i "0,/$pattern/{s/$pattern/$replacement/}" /etc/samba/smb.conf
+test_or_die "patching samba configuration to enable write acccess on user home dirs"
+echo successfully patched the samba configuration to enable writes on user home directories.
+
+# add in a disabling of the archive bit mapping feature, which hoses up the execute bit
+# in an attempt to save the sad old DOS archive bit across the samba connection.
+grep -q "map archive" /etc/samba/smb.conf
+# if the phrase wasn't found, we need to add it.
+if [ $? -ne 0 ]; then
+ sed -i "s/\[global\]/\[global\]\n\nmap archive = no/" /etc/samba/smb.conf
+ test_or_die "patching samba configuration to turn off archive bit mapping feature"
+ echo Successfully fixed Samba to not use the archive bit mapping feature.
+fi
+
+# sweet, looks like that worked...
+restart_samba
+
+##############
+
+# add the latest version of the cakelampvm environment variables for apache.
+
+sep
+
+# drop existing file, if already configured. ignore errors.
+a2disconf env_vars_cakelampvm &>/dev/null
+
+# plug in the new version, just stomping anything there.
+# note: we only expect to have one version of the env_vars dir at a time in place in feisty...
+\cp -f $FEISTY_MEOW_APEX/production/sites/cakelampvm.com/rolling/env_vars.*/env_vars_cakelampvm.conf /etc/apache2/conf-available
+test_or_die "copying environment variables file into place"
+
+# enable the new version of the config file.
+a2enconf env_vars_cakelampvm
+test_or_die "enabling the new cakelampvm environment config for apache"
+
+echo Successfully configured the apache2 environment variables needed for cakelampvm.
+
+##############
+
+# add in a swap mount if not already configured.
+
+sep
+
+# we will only add swap now if explicitly asked for it. this is to avoid creating
+# a swap file where the vm is running on an SSD, since that can use up the SSD's lifespan
+# too quickly.
+if [ ! -z "$ADD_SWAP" ]; then
+ echo "Checking existing swap partition configuration.
+"
+
+ # check for existing swap.
+ free | grep -q "Swap:[[:blank:]]*[1-9][0-9]"
+ if [ $? -ne 0 ]; then
+ # no swap in current session, so add it.
+ echo "Enabling ramdisk swap partition...