10 # TODO should this be BASEURL instead?
19 # TODO not sure if BUILD is the best name for this
29 ## Set up tmp, download, and install directories
32 WEBI_TMP=${WEBI_TMP:-"$(mktemp -d -t webinstall-${WEBI_PKG:-}.XXXXXXXX)"}
34 mkdir -p "$HOME/Downloads"
35 mkdir -p "$HOME/.local/bin"
36 mkdir -p "$HOME/.local/opt"
42 export WEBI_CURL="$(command -v curl)"
43 export WEBI_WGET="$(command -v wget)"
47 # Test for existing version
49 pkg_current_cmd="$(command -v "$pkg_cmd_name")"
52 if [ -n "$pkg_current_cmd" ]; then
53 pkg_current_version="$(pkg_get_current_version)"
54 # remove trailing '.0's for golang's sake
55 my_current_version="$(echo $pkg_current_version | sed 's:\.0::g')"
56 my_new_version="$(echo $WEBI_VERSION | sed 's:\.0::g')"
57 my_canonical_name="$(pkg_format_cmd_version "$WEBI_VERSION")"
58 if [ "$my_new_version" == "$my_current_version" ]; then
59 echo "$my_canonical_name already installed at $pkg_current_cmd"
62 if [ "$pkg_current_cmd" != "$pkg_common_cmd" ]; then
63 echo "WARN: possible conflict between $my_canonical_name and $pkg_current_version at $pkg_current_cmd"
65 if [ -x "$pkg_new_cmd" ]; then
67 echo "switched to $my_canonical_name at $pkg_new_opt"
75 if [ -n "${1:-}" ]; then
78 if [ "error" == "$WEBI_CHANNEL" ]; then
79 echo "Could not find $WEBI_NAME v$WEBI_VERSION"
82 my_url="$WEBI_PKG_URL"
83 echo "Downloading $WEBI_NAME v$WEBI_VERSION"
85 if [ -n "${2:-}" ]; then
88 my_dl="$HOME/Downloads/$WEBI_PKG_FILE"
91 if [ -n "$WEBI_WGET" ]; then
92 # wget has resumable downloads
93 # TODO wget -c --content-disposition "$my_url"
95 wget -q --show-progress -c "$my_url" --user-agent="wget $WEBI_UA" -O "$my_dl"
96 if ! [ $? -eq 0 ]; then
97 echo "failed to download from $WEBI_PKG_URL"
102 # BSD curl is non-resumable, hence we don't bother
103 # TODO curl -fsSL --remote-name --remote-header-name --write-out "$my_url"
104 curl -fSL "$my_url" -H "User-Agent: curl $WEBI_UA" -o "$my_dl"
109 pushd "$WEBI_TMP" 2>&1 >/dev/null
110 if [ "tar" == "$WEBI_EXT" ]; then
111 echo "Extracting $HOME/Downloads/$WEBI_PKG_FILE"
112 tar xf "$HOME/Downloads/$WEBI_PKG_FILE"
113 elif [ "zip" == "$WEBI_EXT" ]; then
114 echo "Extracting $HOME/Downloads/$WEBI_PKG_FILE"
115 unzip "$HOME/Downloads/$WEBI_PKG_FILE"
116 elif [ "exe" == "$WEBI_EXT" ]; then
117 # do nothing (but don't leave an empty if block either)
119 elif [ "xz" == "$WEBI_EXT" ]; then
120 echo "Inflating $HOME/Downloads/$WEBI_PKG_FILE"
121 unxz -c "$HOME/Downloads/$WEBI_PKG_FILE" > $(basename "$WEBI_PKG_FILE")
124 echo "Failed to extract $HOME/Downloads/$WEBI_PKG_FILE"
131 # make sure that we don't recursively install pathman with webi
133 export PATH="$HOME/.local/bin:$PATH"
135 my_pathman=$(command -v pathman)
137 export PATH="$my_path"
139 # install pathman if not already installed
140 if [ -z "$my_pathman" ]; then
141 "$HOME/.local/bin/webi" pathman
142 "$HOME/.local/bin/pathman" add "$HOME/.local/bin"
143 export PATH="$HOME/.local/bin:$PATH"
146 # in case pathman was recently installed and the PATH not updated
147 "$HOME/.local/bin/pathman" add "$1"
152 ## BEGIN user-submited script
160 ## END user-submitted script