update (almost) all taglines and descs
[webi-installers/.git] / pathman / install.sh
1 #!/bin/bash
2
3 # title: Pathman
4 # homepage: https://git.rootprojects.org/root/pathman
5 # tagline: |
6 #   Pathman: cross-platform PATH management for bash, zsh, fish, cmd.exe, and PowerShell.
7 # description: |
8 #   Manages PATH on various OSes and shells
9 #     - Mac, Windows, Linux
10 #     - Bash, Zsh, Fish
11 #     - Command, Powershell
12 # examples: |
13 #   ```bash
14 #   pathman add ~/.local/bin
15 #   ```
16 #   <br/>
17 #
18 #   ```bash
19 #   pathman remove ~/.local/bin
20 #   ```
21 #   <br/>
22 #
23 #   ```bash
24 #   pathman list
25 #   ```
26
27
28 set -e
29 set -u
30
31 pkg_cmd_name="pathman"
32 WEBI_SINGLE=true
33
34 pkg_get_current_version() {
35     echo $(pathman version 2>/dev/null | head -n 1 | cut -d ' ' -f2 | sed 's:^v::')
36 }
37
38 x_pkg_pre_install() {
39     # Test if in PATH
40     set +e
41     my_pathman=$(command -v pathman)
42     set -e
43     if [ -n "$my_pathman" ]; then
44         # TODO test pathman version
45         # if [ "$WEBI_VERSION" == "$(pathman version | cut -d ' ' -f2)" ]; then
46         if [ "$my_pathman" != "$HOME/.local/bin/pathman" ]; then
47             echo "a pathman installation (which make take precedence) exists at:"
48             echo "    $my_pathman"
49             echo ""
50         fi
51         echo "pathman already installed"
52         exit 0
53     fi
54 }
55
56 x_pkg_install() {
57     # TODO use webi_download via releases.js
58     mkdir -p "$HOME/.local/bin/"
59     webi_check
60     webi_download
61     webi_download
62     # webi_download "https://rootprojects.org/pathman/dist/$(uname -s)/$(uname -m)/pathman"
63     mv "$HOME/Downloads/pathman-v0.5.2" "$HOME/.local/bin/pathman"
64     chmod +x "$HOME/.local/bin/pathman"
65 }
66
67 x_pkg_link() {
68     true
69 }
70
71 pkg_post_install() {
72     # add to ~/.local/bin to PATH even if pathman is elsewhere
73     # TODO pathman needs silent option and debug output (quiet "already exists" output)
74     # TODO inform user to add to path, apart from pathman?
75     "$HOME/.local/bin/pathman" add "$HOME/.local/bin"
76 }
77
78 pkg_done_message() {
79     true
80 }