~exprez135/taliaferro

ref: 8b6e0f7c019f532841af40b950c4048422232234 taliaferro/deploy-all.sh -rwxr-xr-x 2.8 KiB
8b6e0f7c — Nate rebuilding site Sun Feb 9 13:47:19 CST 2020: Fix navbar symbols showing up first. 1 year, 8 months ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#! /bin/bash

# This is a script which, when run on Mac or Linux, will automatically build the site, the index, commit and push it to GitLab, and SSH into the server and pull the files from GitLab and copy them to the public web server.

# The following creates variables which set the colour/formatting of the output to the terminal.
# Examples: Green is green, under is underlined, bu is bold and underlined, reset resets everything to normal.
green=$(tput setaf 2)
red=$(tput setaf 1)
yellow=$(tput setaf 3)
cyan=$(tput setaf 6)
bold=$(tput bold)
under=$(tput smul)
bu=$(tput bold && tput smul)
reset=$(tput sgr0)


echo -e "${bold}Deploying updates to GitLab...${reset}"

# Build index for site using the generate.sh script (see file for more info).
echo -e "${cyan}Starting index building process...${reset}"
./generate.sh
echo -e "${green}Index build complete.${reset}"

# Build the project using Hugo.
echo -e "${cyan}Starting Hugo build process...${reset}"
hugo -d public_html --minify
echo -e "${green}Hugo build process complete.${reset}"

# Add changes to git for all directories.
echo -e "${cyan}Tracking all git files...${reset}"
git add .

# Commit changes.
echo -e "${cyan}What is the custom commit message?${reset}"
read -r usrmsg

echo -e "${cyan}Committing changes...${reset}"
msg="rebuilding site $(date):"
if [ $# -eq 1 ]
  then msg="$1"
fi
git commit -m "$msg $usrmsg"
echo -e "${green}Changes committed.${reset}"

# Push source and build repos.
echo -e "${cyan}Pushing origin master...${reset}"
git push origin master
echo -e "${green}Pushed.${reset}"


echo -e "${green}LOCAL PROCESS COMPLETED.${reset}"

# Try to update website on server by SSHing in.
# First, cd (move) to the taliaferro directory.
# Then, git pull the repository (which has now been updated).
# Now, cd (move) into the now-updated public_html folder on the server.
# Then, cp (copy) files from that folder to ~/public_html/, which is the directory which has the contents of the site shown to visitors.
# Finally, exit SSH and tell the user everything is done :).
echo -e "${bold}Attempting to begin remote server update. Beginning SSH connection...${reset}"

ssh thetalia@184.154.216.245 -p 16969 'echo -e "SSH process complete."; echo -e "Deploying updates to Server..."; echo -e "Moving into taliaferro folder..."; cd ~/taliaferro; echo -e "Git pulling master..."; git pull origin master; echo -e "Pulled."; echo -e "Moving into public_html folder..."; cd public_html; echo -e "Copying files from git into ~/public_html..."; cp * ~/public_html/ -rf; echo -e "Copying complete."; echo -e "REMOTE PROCESS COMPLETE."; echo -e "Exiting SSH..."; exit'

# This moves back into the <root> directory of the repository. Change it for your system.
cd ~/Documents/GitLab/taliaferro || exit

echo -e "${green}GIT UPDATED. WEBSITE SERVER UPDATED. ALL PROCESSES COMPLETE. CONGRATULATIONS!${reset}"