9c08e61374a57fde15b158125712f6b488af1180
[webi-installers/.git] / hugo / install.bash
1 # title: Hugo
2 # homepage: https://github.com/gohugoio/hugo
3 # tagline: The world’s fastest framework for building websites
4 # description: |
5 #   Hugo is one of the most popular open-source static site generators. With its amazing speed and flexibility, Hugo makes building websites fun again.
6 # examples: |
7 #   ```bash
8 #   hugo
9 #   ```
10 #
11 #   ```bash
12 #   hugo server -D
13 #   ```
14
15 set -e
16 set -u
17
18 pkg_cmd_name="hugo"
19 pkg_common_opt="$HOME/.local"
20
21 # just a junk file so that the version check always fails for non-current versions
22 pkg_new_opt="$HOME/.local/opt/hugo-doesntexist111"
23
24 pkg_get_current_version() {
25     # 'hugo version' has output in this format:
26     #       Hugo Static Site Generator v0.72.0-8A7EF3CF darwin/amd64 BuildDate: 2020-05-31T12:07:44Z
27     # This trims it down to just the version number:
28     #       0.72.0
29     echo "$(hugo version 2>/dev/null | head -n 1 | cut -d' ' -f5 | cut -d '-' -f1 | sed 's:^v::')"
30 }
31
32 pkg_format_cmd_version() {
33     # 'node v12.8.0' is the canonical version format for node
34     my_version="$1"
35     echo "$pkg_cmd_name v$my_version"
36 }
37
38 pkg_link_new_version() {
39     # hugo is just a single file, no directory linking to do
40     true
41 }
42
43 pkg_pre_install() {
44     # if selected version is installed, quit
45     webi_check
46     # will save to ~/Downloads/$WEBI_PKG_FILE by default
47     webi_download
48     # supported formats (.xz, .tar.*, .zip) will be extracted to $WEBI_TMP
49     webi_extract
50 }
51
52 pkg_install() {
53     pushd "$WEBI_TMP" 2>&1 >/dev/null
54
55         # rename the entire extracted folder to the new location
56         # (this will be "$HOME/.local/opt/node-v$WEBI_VERSION" by default)
57         mkdir -p "$pkg_common_bin"
58         mv ./"$pkg_cmd_name"* "$pkg_common_cmd"
59
60     popd 2>&1 >/dev/null
61 }
62
63 pkg_post_install() {
64     # just in case we add something in the future
65     pkg_link_new_version
66
67     # web_path_add is defined in webi/template.bash at https://github.com/webinstall/packages
68     # Adds "$HOME/.local/opt/node" to PATH
69     webi_path_add "$pkg_common_bin"
70 }