skip user creation if already exists, avoid errors
[feisty_meow.git] / scripts / site_avenger / revamp_cakelampvm.sh
index 8bd5eeee411cc5237e60287310788415f2716083..ece38d9b536efe216709611631abac20248f7c86 100644 (file)
@@ -30,6 +30,8 @@ fi
 
 ##############
 
 
 ##############
 
+sep
+
 echo "Regenerating feisty meow loading dock."
 
 reconfigure_feisty_meow
 echo "Regenerating feisty meow loading dock."
 
 reconfigure_feisty_meow
@@ -84,6 +86,8 @@ echo "Done with important permission changes."
 #
 ##############
 
 #
 ##############
 
+sep
+
 echo "Updating developer welcome file."
 
 # only update hello if they've still got the file there.  we don't want to
 echo "Updating developer welcome file."
 
 # only update hello if they've still got the file there.  we don't want to
@@ -98,6 +102,8 @@ fi
 
 # install a better editor app.
 
 
 # install a better editor app.
 
+sep
+
 echo "The script is about to install the bluefish editor and some dependencies.
 If the app is not already installed, then this process takes only about a
 minute on a slower home DSL internet connection..."
 echo "The script is about to install the bluefish editor and some dependencies.
 If the app is not already installed, then this process takes only about a
 minute on a slower home DSL internet connection..."
@@ -117,6 +123,9 @@ test_or_continue "installing bluefish editor"
 # which we've done as a prefix on the config for some reason.  makes the
 # code below easy at least.
 if [ -L /etc/apache2/sites-enabled/000-default.conf ]; then
 # which we've done as a prefix on the config for some reason.  makes the
 # code below easy at least.
 if [ -L /etc/apache2/sites-enabled/000-default.conf ]; then
+
+  sep
+
   # the old site is in place still, so let's update that.
   echo "Updating default web sites to latest version."
 
   # the old site is in place still, so let's update that.
   echo "Updating default web sites to latest version."
 
@@ -150,14 +159,16 @@ fi
 # fix up the apache site so that HSTS is disabled.  otherwise we can't view
 # the https site for cakelampvm.com once the domain name switch has occurred.
 
 # fix up the apache site so that HSTS is disabled.  otherwise we can't view
 # the https site for cakelampvm.com once the domain name switch has occurred.
 
+sep
+
 # we operate only on our own specialized tls conf file.  hopefully no one has messed with it besides revamp.
 # note the use of the character class :blank: below to match spaces or tabs.
 search_replace "^[[:blank:]]*Header always set Strict-Transport-Security.*" "# not good for cakelampvm.com -- Header always set Strict-Transport-Security \"max-age=63072000; includeSubdomains;\"" /etc/apache2/conf-library/tls-enabling.conf
 if [ $? -ne 0 ]; then
 # we operate only on our own specialized tls conf file.  hopefully no one has messed with it besides revamp.
 # note the use of the character class :blank: below to match spaces or tabs.
 search_replace "^[[:blank:]]*Header always set Strict-Transport-Security.*" "# not good for cakelampvm.com -- Header always set Strict-Transport-Security \"max-age=63072000; includeSubdomains;\"" /etc/apache2/conf-library/tls-enabling.conf
 if [ $? -ne 0 ]; then
-  echo the apache tls-enabling.conf file seems to have already been patched to disable strict transport security.  good.
+  echo the apache tls-enabling.conf file seems to have already been patched to disable strict transport security. 
 else
   restart_apache
 else
   restart_apache
-  echo successfully patched the apache tls-enabling.conf file to disable strict transport security.  awesome.
+  echo successfully patched the apache tls-enabling.conf file to disable strict transport security. 
 fi
 
 ##############
 fi
 
 ##############
@@ -166,57 +177,65 @@ fi
 # as being on the vm.  this is already true for some specific sites, but we
 # want the wildcard enabled to ease the use of DNS for windows folks.
 
 # as being on the vm.  this is already true for some specific sites, but we
 # want the wildcard enabled to ease the use of DNS for windows folks.
 
+sep
+
 grep -q "\*[[:blank:]]*IN A[[:blank:]]*10.28.42.20" /etc/bind/cakelampvm.com.conf
 if [ $? -eq 0 ]; then
   # already present.
 grep -q "\*[[:blank:]]*IN A[[:blank:]]*10.28.42.20" /etc/bind/cakelampvm.com.conf
 if [ $? -eq 0 ]; then
   # already present.
-  echo the bind settings for wildcard domains off of cakelampvm.com seems to already be present.  good deal.
+  echo the bind settings for wildcard domains off of cakelampvm.com seems to already be present. 
 else
   echo "
 else
   echo "
+
+
+;;;;;;
+
 ; our bind magic, a wildcard domain, for all other sites with cakelampvm.com
 ; in the domain.  this forces any other sites besides the ones above to route
 ; to the actual vm IP address, which currently is singular and very fixated.
 *                              IN A            10.28.42.20
                                IN HINFO        "linux vm" "ubuntu"
 ; our bind magic, a wildcard domain, for all other sites with cakelampvm.com
 ; in the domain.  this forces any other sites besides the ones above to route
 ; to the actual vm IP address, which currently is singular and very fixated.
 *                              IN A            10.28.42.20
                                IN HINFO        "linux vm" "ubuntu"
+
+;;;;;;
+
+
+
 " >> /etc/bind/cakelampvm.com.conf
   restart_bind
 " >> /etc/bind/cakelampvm.com.conf
   restart_bind
-  echo "successfully added wildcard domains to the cakelampvm.com bind configuration, so we're still on track for greatness."
+  echo "successfully added wildcard domains to the cakelampvm.com bind configuration."
 fi
 
 ##############
 
 # fix samba configuration for (ass-headed) default of read-only in user homes.
 fi
 
 ##############
 
 # fix samba configuration for (ass-headed) default of read-only in user homes.
-# why add a necessary feature if you're just going to cripple it by default?
+# why cripple a necessary feature by default?
+
+sep
 
 pattern="[#;][[:blank:]]*read only = yes"
 replacement="read only = no"
 
 
 pattern="[#;][[:blank:]]*read only = yes"
 replacement="read only = no"
 
-# first see if we've already done this.
-# if we find any occurrence of the replacement, we assume we already did it.
-# ** we're assuming a lot about the structure of the samba config file!
-grep -q "$replacement" /etc/samba/smb.conf 
-if [ $? -ne 0 ]; then
-  echo "the samba configuration has already been fixed for user homes, s'cool."
-else
-  # so not there yet; we need to make the replacement.
-  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"
-  # sweet, looks like that worked...
-  restart_samba
-  echo successfully patched the samba configuration to enable writes on user home directories.  way cool.
-fi
+# we just always do the replacement now, after realizing the sentinel pattern
+# was acutally 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"
+# sweet, looks like that worked...
+restart_samba
+echo successfully patched the samba configuration to enable writes on user home directories. 
 
 ##############
 
 # set up some crucial users in the mysql db that we seem to have missed previously.
 
 
 ##############
 
 # set up some crucial users in the mysql db that we seem to have missed previously.
 
-mysql -u root -p "$mysql_passwd" <<EOF
-  create user 'root'@'%' IDENTIFIED BY '$mysql_passwd';
+sep
+
+mysql -u root -p"$mysql_passwd" <<EOF
+  create user if not exists 'root'@'%' IDENTIFIED BY '$mysql_passwd';
   grant all privileges on *.* TO 'root'@'%' with grant option;
 
   grant all privileges on *.* TO 'root'@'%' with grant option;
 
-  create user 'wampcake'@'%' IDENTIFIED BY 'bakecamp';
+  create user if not exists 'wampcake'@'%' IDENTIFIED BY 'bakecamp';
   grant all privileges on *.* TO 'wampcake'@'%' with grant option;
 
   grant all privileges on *.* TO 'wampcake'@'%' with grant option;
 
-  create user 'lampcake'@'%' IDENTIFIED BY 'bakecamp';
+  create user if not exists 'lampcake'@'%' IDENTIFIED BY 'bakecamp';
   grant all privileges on *.* TO 'lampcake'@'%' with grant option;
 EOF
 test_or_die "configuring root, wampcake and lampcake users on mysql"
   grant all privileges on *.* TO 'lampcake'@'%' with grant option;
 EOF
 test_or_die "configuring root, wampcake and lampcake users on mysql"
@@ -225,10 +244,10 @@ test_or_die "configuring root, wampcake and lampcake users on mysql"
 
 # add the latest version of the cakelampvm environment variables for apache.
 
 
 # add the latest version of the cakelampvm environment variables for apache.
 
-echo Setting up environment variables for apache2...
+sep
 
 # drop existing file, if already configured.  ignore errors.
 
 # drop existing file, if already configured.  ignore errors.
-a2disconf env_vars_cakelampvm
+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...
 
 # 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...
@@ -246,10 +265,8 @@ echo Successfully configured the apache2 environment variables needed for cakela
 
 # sequel--tell them they're great and show the hello again also.
 
 
 # sequel--tell them they're great and show the hello again also.
 
-echo "
+sep
 
 
-
-"
 regenerate
 test_or_die "regenerating feisty meow scripts"
 chown -R "$(logname)":"$(logname)" /home/$(logname)/.[a-zA-Z0-9]*
 regenerate
 test_or_die "regenerating feisty meow scripts"
 chown -R "$(logname)":"$(logname)" /home/$(logname)/.[a-zA-Z0-9]*