tmux, bash, mgmt fiddling
This commit is contained in:
parent
6649cfc78d
commit
c653422734
11 changed files with 160 additions and 11 deletions
35
private_dot_config/private_mgmt/fns/bin_from.bash
Normal file
35
private_dot_config/private_mgmt/fns/bin_from.bash
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
# shellcheck shell=bash
|
||||
bin_from() {
|
||||
name="$1"
|
||||
url="$2"
|
||||
flag="$3"
|
||||
|
||||
if [[ -z "$name" || -z "$url" ]]; then
|
||||
diag "$(red "error: missing name ($name) or url ($url)!")"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ "$url" == *.tar.gz || "$url" == *.tgz ]]; then
|
||||
dir=$(mktemp -d)
|
||||
if curl -sSL "$url" | tar -C "$dir" -xz 2>&1 | grep -q 'not in gzip format'; then
|
||||
diag "$(red "error: file from $url not in gzip format")"
|
||||
exit 1
|
||||
fi
|
||||
file=$(find "$dir" -type f -name "$name")
|
||||
elif [[ "$url" == *.tar.xz ]]; then
|
||||
dir=$(mktemp -d)
|
||||
curl -sSL "$url" | tar -C "$dir" -xJ
|
||||
file=$(find "$dir" -type f -name "$name")
|
||||
elif [[ "$url" == *.zip ]]; then
|
||||
zip=$(mktemp --suffix=.zip)
|
||||
dir=$(mktemp -d)
|
||||
curl -sSL "$url" > "$zip"
|
||||
unzip -qq "$zip" -d "$dir"
|
||||
file=$(find "$dir" -type f -name "$name")
|
||||
else
|
||||
file="$(mktemp)"
|
||||
curl -sSLo "$file" "$url" || diag "$(red "error from url [$url]")"
|
||||
fi
|
||||
|
||||
install_bin "$name" "$file" "$url" "$flag"
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue