-
Notifications
You must be signed in to change notification settings - Fork 12
/
update_academic.sh
55 lines (46 loc) · 1.59 KB
/
update_academic.sh
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
#!/usr/bin/env bash
# Source Themes Academic: Theme updater
# Checks for available updates and then asks to install any updates.
# https://sourcethemes.com/academic/
#
# Command: bash ./update_academic.sh
# Check for prerequisites.
if [ ! -d .git ]; then
echo "ERROR: This tool is for Git repositories only."
exit 1;
fi
# Function to update Academic
function install_update () {
# Apply any updates
git submodule update --remote --merge
# - Update Netlify.toml with required Hugo version
if [ -f ./netlify.toml ]; then
version=$(sed -n 's/^min_version = //p' themes/academic/theme.toml)
sed -i '' -e "s/HUGO_VERSION = .*/HUGO_VERSION = $version/g" ./netlify.toml
fi
echo
echo "View the release notes at: https://sourcethemes.com/academic/updates"
echo "If there are breaking changes, the config and/or front matter of content" \
"may need upgrading by following the steps in the release notes."
}
# Display currently installed version (although could be between versions if updated to master rather than tag)
version=$(sed -n 's/^version = "//p' themes/academic/data/academic.toml)
echo -e "Source Themes Academic v$version\n"
# Display available updates
echo -e "Checking for updates...\n"
cd themes/academic
git fetch
git log --pretty=oneline --abbrev-commit --decorate HEAD..origin/master
cd ../../
title="Do you wish to install the above updates?"
prompt="Choose an option and press Enter:"
options=("Yes" "No")
echo "$title"
PS3="$prompt "
select opt in "${options[@]}"; do
case $opt in
Yes ) install_update; break;;
No ) break;;
* ) break;;
esac
done