home · contact · privacy
Differentiate init_state options for *site scripts.
[config] / buster / setup_scripts / setup_website.sh
index 38b49a20595a4715ec21c06c2b688504d7026d1c..17025609b29ce8d208959cc3bf0a60fa559e463f 100755 (executable)
@@ -5,8 +5,8 @@ if [ "$#" -ne 5 ]; then
     echo 'Need domain name and mail and old server IP and key ID and init state (old, new?) as argument.'
     false
 fi
     echo 'Need domain name and mail and old server IP and key ID and init state (old, new?) as argument.'
     false
 fi
-if [ ! "$5" = "old" ] && [ ! "$5" = "new" ]; then
-    echo "Need init state to be either 'old' or 'new'"
+if [ ! "$5" = "copy" ] && [ ! "$5" = "new" ] && [ ! "$5" = "upgrade" ]; then
+    echo "Need init state to be either 'copy' or 'new' or 'upgrade'"
     false
 fi
 domain="$1"
     false
 fi
 domain="$1"
@@ -43,7 +43,11 @@ if [ "${init_state}" = "new" ]; then
 else
   cp "${config_tree_prefix}/setup_scripts/mirror_dir.sh" /home/plom/
   chmod a+w /var
 else
   cp "${config_tree_prefix}/setup_scripts/mirror_dir.sh" /home/plom/
   chmod a+w /var
-  su -lc "./mirror_dir.sh ${old_server} /var/repos" plom
+  if ["${init_state}" = "copy" ]; then
+    su -lc "./mirror_dir.sh ${old_server} /var/repos" plom
+  else
+    su -lc "./mirror_dir.sh ${old_server} /var/public_repos" plom
+  fi
   chmod a-w /var
   rm /home/plom/mirror_dir.sh
 fi
   chmod a-w /var
   rm /home/plom/mirror_dir.sh
 fi
@@ -57,10 +61,14 @@ ln -s /etc/nginx/sites-available/website.nginx /etc/nginx/sites-enabled/website.
 rm -rf /var/www
 mkdir /var/www
 chown plom:plom /var/www
 rm -rf /var/www
 mkdir /var/www
 chown plom:plom /var/www
-if [ "${init_state}" = "new" ]; then
+if [ "${init_state}" = "upgrade" ]; then
+  # This assumes the old core.plomlompom.com filesystem hierarchy.
   su -lc "cd /var/repos && git clone --mirror ${old_server}:repos/website" plom
   su -lc "cd /var/repos && git clone --mirror ${old_server}:repos/website" plom
-  cp "${config_tree_prefix}/other_files/website_hook_post-receive" /var/repos/website.git/hooks/post-receive
+elif [ "${init_state}" = "new" ]; then
+  su -lc "cd /var/repos && git init --bare website" plom
 fi
 fi
+# TODO: find out whether this can be part of cloned repo …?
+cp "${config_tree_prefix}/other_files/website_hook_post-receive" /var/repos/website.git/hooks/post-receive
 su -lc 'cd /var/www && git clone /var/repos/website.git .' plom
 
 # Add encryption key.
 su -lc 'cd /var/www && git clone /var/repos/website.git .' plom
 
 # Add encryption key.
@@ -90,6 +98,8 @@ chown -R plom:plom "${irclogs_dir}"
 mkdir -p "${irclogs_pw_dir}"
 chown -R plom:plom "${irclogs_pw_dir}"
 if [ "${init_state}" = "new" ]; then
 mkdir -p "${irclogs_pw_dir}"
 chown -R plom:plom "${irclogs_pw_dir}"
 if [ "${init_state}" = "new" ]; then
+    # Handle the case that the repo is in the old pre-buster server setup –
+    # even then, the URL should be the same.
   su -lc "cd /var/repos && git clone --mirror https://plomlompom.com/repos/clone/plomlombot-irc" plom
   su -lc "touch /var/repos/plomlombot-irc.git/git-daemon-export-ok" plom
   cp "${config_tree_prefix}/other_files/plomlombot_hook_post-receive" /var/repos/plomlombot-irc.git/hooks/post-receive
   su -lc "cd /var/repos && git clone --mirror https://plomlompom.com/repos/clone/plomlombot-irc" plom
   su -lc "touch /var/repos/plomlombot-irc.git/git-daemon-export-ok" plom
   cp "${config_tree_prefix}/other_files/plomlombot_hook_post-receive" /var/repos/plomlombot-irc.git/hooks/post-receive
@@ -105,7 +115,7 @@ else
   su -lc "./mirror_dir.sh ${old_server} /home/plom/plomlombot_db" plom
   rm /home/plom/mirror_dir.sh
   su -lc "scp plom@${old_server}:.plomlombot ~" plom
   su -lc "./mirror_dir.sh ${old_server} /home/plom/plomlombot_db" plom
   rm /home/plom/mirror_dir.sh
   su -lc "scp plom@${old_server}:.plomlombot ~" plom
-  ssh plom@"${old_server}" "su -lc 'service plomlombot stop'"
+  su -lc "ssh plom@${old_server} \"su -lc 'service plomlombot stop'\"" plom
 fi
 
 systemctl enable plomlombot.service
 fi
 
 systemctl enable plomlombot.service