home · contact · privacy
Differentiate init_state options for *site scripts.
[config] / buster / setup_scripts / setup_website.sh
index aefb9a8fa20453eb37b9f8ec0c44a934428bb03c..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" ] && [ ! "$1" = "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"
@@ -37,13 +37,17 @@ rm /home/plom/prepare_to_meet_server.sh
 # To use this dir, "git clone --mirror" repo source paths into it as user plom.
 # As user plom, touch git-daemon-export-ok files into it to make the repo
 # publically available.
 # To use this dir, "git clone --mirror" repo source paths into it as user plom.
 # As user plom, touch git-daemon-export-ok files into it to make the repo
 # publically available.
-if [ "$init_state" = "new" ]; then
+if [ "${init_state}" = "new" ]; then
   mkdir /var/repos
   chown plom:plom /var/repos
 else
   cp "${config_tree_prefix}/setup_scripts/mirror_dir.sh" /home/plom/
   chmod a+w /var
   mkdir /var/repos
   chown plom:plom /var/repos
 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.
@@ -89,16 +97,17 @@ mkdir -p "${irclogs_dir}"
 chown -R plom:plom "${irclogs_dir}"
 mkdir -p "${irclogs_pw_dir}"
 chown -R plom:plom "${irclogs_pw_dir}"
 chown -R plom:plom "${irclogs_dir}"
 mkdir -p "${irclogs_pw_dir}"
 chown -R plom:plom "${irclogs_pw_dir}"
-if [ "$init_state" = "new" ]; then
+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
 fi
   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
 fi
-
 su -lc "git clone /var/repos/plomlombot-irc.git" plom
 cp "${config_tree_prefix}/other_files/plomlombot_daemon.sh" /home/plom/
 chown plom:plom /home/plom/plomlombot_daemon.sh
 su -lc "git clone /var/repos/plomlombot-irc.git" plom
 cp "${config_tree_prefix}/other_files/plomlombot_daemon.sh" /home/plom/
 chown plom:plom /home/plom/plomlombot_daemon.sh
-if [ "$init_state" = "new" ]; then
+if [ "${init_state}" = "new" ]; then
   echo 'bot: plomlombog plomlombog #plomlomtest irc.freenode.net foo bar' >> /home/plom/.plomlombot
   chown plom:plom /home/plom/.plomlombot
 else
   echo 'bot: plomlombog plomlombog #plomlomtest irc.freenode.net foo bar' >> /home/plom/.plomlombot
   chown plom:plom /home/plom/.plomlombot
 else
@@ -106,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