75521b3e9a4bbc965282f8b6ec097609618f6aab
[webi-installers/.git] / caddy / install.bash
1 # title: Caddy
2 # homepage: https://github.com/caddyserver/caddy
3 # tagline: Fast, multi-platform web server with automatic HTTPS
4 # description: |
5 #   Caddy is an extensible server platform that uses TLS by default.
6 # examples: |
7 #   ```bash
8 #   caddy start
9 #   ```
10
11 set -e
12 set -u
13
14 pkg_cmd_name="caddy"
15 pkg_common_opt="$HOME/.local"
16
17 # just a junk file so that the version check always fails for non-current versions
18 pkg_new_opt="$HOME/.local/opt/caddy-doesntexist111"
19
20 pkg_get_current_version() {
21     # 'caddy version' has output in this format:
22     #       v2.1.0 h1:pQSaIJGFluFvu8KDGDODV8u4/QRED/OPyIR+MWYYse8=
23     # This trims it down to just the version number:
24     #       2.0.0
25     echo "$(caddy version 2>/dev/null | head -n 1 | cut -d' ' -f1 | sed 's:^v::')"
26 }
27
28 pkg_format_cmd_version() {
29     # 'caddy v2.1.0' is the canonical version format for caddy
30     my_version="$1"
31     echo "$pkg_cmd_name v$my_version"
32 }
33
34 pkg_link_new_version() {
35     # caddy is just a single file, no directory linking to do
36     true
37 }
38
39 pkg_pre_install() {
40     # if selected version is installed, quit
41     webi_check
42     # will save to ~/Downloads/$WEBI_PKG_FILE by default
43     webi_download
44     # supported formats (.xz, .tar.*, .zip) will be extracted to $WEBI_TMP
45     webi_extract
46 }
47
48 pkg_install() {
49     pushd "$WEBI_TMP" 2>&1 >/dev/null
50
51         # ensure the bin dir exists
52         mkdir -p "$pkg_common_bin"
53
54         # rename the entire extracted folder to the new location
55         # (this will be "$HOME/.local/bin/caddy", as set above)
56
57         # ex (full directory): ./node-v13-linux-amd64/bin/node.exe
58         #mv ./"$pkg_cmd_name"* "$pkg_new_opt"
59
60         # ex (single file): ./caddy-v2.0.0-linux-amd64.exe
61         mv ./"$pkg_cmd_name"* "$pkg_common_cmd"
62
63         # ex (single file, nested in directory): ./rg/rg-v13-linux-amd64
64         #mv ./"$pkg_cmd_name"*/"$pkg_cmd_name"* "$pkg_commend_cmd"
65
66     popd 2>&1 >/dev/null
67 }
68
69 pkg_post_install() {
70     # just in case we add something in the future
71     pkg_link_new_version
72
73     # web_path_add is defined in webi/template.bash at https://github.com/webinstall/packages
74     # Adds "$HOME/.local/bin" to PATH
75     webi_path_add "$pkg_common_bin"
76 }