UI testing tool, #37340
[freeside.git] / FS-Test / bin / freeside-test-stop
diff --git a/FS-Test/bin/freeside-test-stop b/FS-Test/bin/freeside-test-stop
new file mode 100755 (executable)
index 0000000..5066890
--- /dev/null
@@ -0,0 +1,45 @@
+#!/bin/bash
+
+set -ae
+
+echo "Stopping Apache."
+sudo service apache2 stop
+
+echo "Resetting clock."
+sudo hwclock --hctosys
+
+newname=freeside_test_`date +%Y%m%d`
+if psql -l |grep -q '^ *freeside '; then
+  echo "Renaming test database to $newname."
+  psql postgres -c "ALTER DATABASE freeside RENAME TO $newname"
+fi
+
+if (sudo grep -q '^test:' /usr/local/etc/freeside/htpasswd); then
+  newhtpasswd=htpasswd_test_`date +%Y%m%d`
+  echo "Renaming htpasswd to $newhtpasswd."
+  sudo mv /usr/local/etc/freeside/htpasswd /usr/local/etc/freeside/$newhtpasswd
+  oldhtpasswd=$( cd /usr/local/etc/freeside; \
+                 ls |grep -P 'htpasswd_\d{8}' | \
+                 sort -nr |head -1 )
+  if [ -f $oldhtpasswd ]; then
+    echo "Renaming $oldhtpasswd to htpasswd."
+    sudo mv /usr/local/etc/freeside/$oldhtpasswd \
+      /usr/local/etc/freeside/htpasswd
+  fi
+fi
+
+oldname=$( psql -tl | \
+           cut -d '|' -f 1 | \
+           tr -d ' ' | \
+           grep -P 'freeside_\d{8}' | \
+           sort -nr | head -1 )
+
+if [ -n "$oldname" ]; then
+  echo "Renaming $oldname to freeside."
+  psql postgres -c "ALTER DATABASE $oldname RENAME TO freeside"
+  echo "Restarting services."
+  sudo service apache2 restart
+  sudo service freeside restart
+fi
+
+echo "Done."