Update shell script styles and update versions
parent
c9004e963e
commit
5f5e995fbd
@ -1,83 +1,121 @@
|
|||||||
#ft=sh
|
#ft=sh
|
||||||
|
#shellcheck shell=sh
|
||||||
|
|
||||||
if type nvim >/dev/null 2>/dev/null ; then
|
if type nvim >/dev/null 2>/dev/null; then
|
||||||
export EDITOR=nvim
|
export EDITOR=nvim
|
||||||
alias vim=nvim
|
alias vim=nvim
|
||||||
else
|
else
|
||||||
export EDITOR=vim
|
export EDITOR=vim
|
||||||
fi
|
fi
|
||||||
|
|
||||||
slugify () (
|
source_env_file() {
|
||||||
if [ "$#" -ne 0 ] ; then
|
if [ ! -f "${1}" ]; then
|
||||||
echo "$@" | slugify
|
return
|
||||||
else
|
fi
|
||||||
iconv --to-code ascii//TRANSLIT |
|
eval "$(
|
||||||
sed -E 's/[^a-zA-Z0-9]+/-/g' |
|
grep -v '^\s*\#' "${1}" |
|
||||||
sed -E 's/^-+\|-+$//g' |
|
grep -v '^\s*$' |
|
||||||
tr '[:upper:]' '[:lower:]'
|
sed 's/^\s*export//g' |
|
||||||
fi
|
sed 's/^/export /g'
|
||||||
|
)"
|
||||||
|
}
|
||||||
|
|
||||||
|
add_date_prefix() (
|
||||||
|
DIR=$(dirname "$1")
|
||||||
|
FILE=$(basename "$1")
|
||||||
|
DATE=$(date -r "$1" +"%F")
|
||||||
|
if [ ! -f "$1" ]; then
|
||||||
|
echo "unknown file: $1"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
mv "$1" "$DIR/${DATE}_${FILE}"
|
||||||
)
|
)
|
||||||
|
|
||||||
source_env_file () {
|
get_bitrate() (
|
||||||
if [ ! -f "${1}" ]; then
|
if [ ! -f "$1" ]; then
|
||||||
return
|
echo "[ERROR] unknown file: $1"
|
||||||
fi
|
exit 1
|
||||||
eval "$(
|
fi
|
||||||
grep -v '^\s*\#' "${1}" |
|
if ! command -v exiftool >/dev/null; then
|
||||||
grep -v '^\s*$' |
|
echo "[ERROR] exiftool not installed"
|
||||||
sed 's/^\s*export//g' |
|
exit 1
|
||||||
sed 's/^/export /g'
|
fi
|
||||||
)"
|
exiftool -AudioBitrate "$1" | awk '{print $4}'
|
||||||
}
|
)
|
||||||
|
|
||||||
|
json_to_yaml() (
|
||||||
|
ARG=${1-}
|
||||||
|
if [ -z "${ARG}" ]; then
|
||||||
|
dasel --read json --write yaml | bat --language yaml
|
||||||
|
elif [ -f "${ARG}" ]; then
|
||||||
|
dasel --read json --write yaml --file "${ARG}" | bat --language yaml
|
||||||
|
else
|
||||||
|
echo "${ARG}" | dasel --read json --write yaml | bat --language yaml
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
|
||||||
|
yaml_to_json() (
|
||||||
|
ARG=${1-}
|
||||||
|
if [ -z "${ARG}" ]; then
|
||||||
|
dasel --read yaml --write json | bat --language json
|
||||||
|
elif [ -f "${ARG}" ]; then
|
||||||
|
dasel --read yaml --write json --file "${ARG}" | bat --language json
|
||||||
|
else
|
||||||
|
echo "${ARG}" | dasel --read yaml --write json | bat --language json
|
||||||
|
fi
|
||||||
|
)
|
||||||
|
|
||||||
|
github_releases() (
|
||||||
|
USER=${1}
|
||||||
|
REPO=${2-}
|
||||||
|
if [ -z "${REPO}" ]; then
|
||||||
|
USER=$(echo "${1}" | sed 's|/| |g' | awk '{print $1}')
|
||||||
|
REPO=$(echo "${1}" | sed 's|/| |g' | awk '{print $2}')
|
||||||
|
fi
|
||||||
|
curl --silent --header "Accept: application/vnd.github.v3+json" \
|
||||||
|
"https://api.github.com/repos/${USER}/${REPO}/releases"
|
||||||
|
)
|
||||||
|
|
||||||
add_date_prefix () (
|
command_installed() (
|
||||||
DIR=$(dirname "$1")
|
set -ue
|
||||||
FILE=$(basename "$1")
|
cmd=${1}
|
||||||
DATE=$(date -r "$1" +"%F")
|
if ! command -v "${cmd}" 1>&2 >/dev/null; then
|
||||||
if [ ! -f "$1" ] ; then
|
echo "${cmd} not installed" 1>&2
|
||||||
echo "unknown file: $1"
|
exit 1
|
||||||
exit 1
|
fi
|
||||||
fi
|
|
||||||
mv "$1" "$DIR/${DATE}_${FILE}"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
get_bitrate () (
|
min_jpg() (
|
||||||
if [ ! -f "$1" ] ; then
|
set -ue
|
||||||
echo "[ERROR] unknown file: $1"
|
command_installed jpegtran
|
||||||
exit 1
|
file=$1
|
||||||
fi
|
out_file=$(mktemp)
|
||||||
if ! command -v exiftool > /dev/null ; then
|
jpegtran -optimize -perfect -outfile "$out_file" "$file"
|
||||||
echo "[ERROR] exiftool not installed"
|
mv "$out_file" "$file"
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
exiftool -AudioBitrate "$1" | awk '{print $4}'
|
|
||||||
)
|
)
|
||||||
|
|
||||||
json_to_yaml () (
|
min_png() (
|
||||||
ARG=${1:-}
|
set -ue
|
||||||
if [ -z "${ARG}" ] ; then
|
command_installed pngcrush
|
||||||
dasel --read json --write yaml | bat --language yaml
|
out_file=$(mktemp)
|
||||||
elif [ -f "${ARG}" ] ; then
|
file=$1
|
||||||
dasel --read json --write yaml --file "${ARG}" | bat --language yaml
|
pngcrush -rem alla -reduce -brute "$file" "$out_file"
|
||||||
else
|
mv "$out_file" "$file"
|
||||||
echo "${ARG}" | dasel --read json --write yaml | bat --language yaml
|
|
||||||
fi
|
|
||||||
)
|
)
|
||||||
|
|
||||||
yaml_to_json () (
|
get_create_date() (
|
||||||
ARG=${1:-}
|
date -r "$1" +"%F"
|
||||||
if [ -z "${ARG}" ] ; then
|
|
||||||
dasel --read yaml --write json | bat --language json
|
|
||||||
elif [ -f "${ARG}" ] ; then
|
|
||||||
dasel --read yaml --write json --file "${ARG}" | bat --language json
|
|
||||||
else
|
|
||||||
echo "${ARG}" | dasel --read yaml --write json | bat --language json
|
|
||||||
fi
|
|
||||||
)
|
)
|
||||||
|
|
||||||
github_releases () (
|
#shellcheck disable=SC2120
|
||||||
USER=${1}
|
slugify() (
|
||||||
REPO=${2}
|
if [ "$#" -ne 0 ]; then
|
||||||
curl --silent --header "Accept: application/vnd.github.v3+json" \
|
#shellcheck disable=SC2119
|
||||||
"https://api.github.com/repos/${USER}/${REPO}/releases"
|
echo "$@" | slugify
|
||||||
|
else
|
||||||
|
iconv --to-code ascii//TRANSLIT |
|
||||||
|
sed -E 's/[^a-zA-Z0-9]+/-/g' |
|
||||||
|
sed -E 's/^-+\|-+$//g' |
|
||||||
|
tr '[:upper:]' '[:lower:]'
|
||||||
|
fi
|
||||||
)
|
)
|
||||||
|
@ -1,31 +1,31 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
latest_download () (
|
latest_download() (
|
||||||
FILTER='import "github" as gh; gh::latest_download(env.OS; env.ARCH)'
|
FILTER='import "github" as gh; gh::latest_download(env.OS; env.ARCH)'
|
||||||
OS=${2} ARCH="${3}" jq --raw-output "${FILTER}" <"$(release_json "${1}")"
|
OS=${2} ARCH="${3}" jq --raw-output "${FILTER}" <"$(release_json "${1}")"
|
||||||
)
|
)
|
||||||
|
|
||||||
latest_type () (
|
latest_type() (
|
||||||
FILTER='import "github" as gh; gh::latest_type(env.OS; env.ARCH)'
|
FILTER='import "github" as gh; gh::latest_type(env.OS; env.ARCH)'
|
||||||
OS=${2} ARCH="${3}" jq --raw-output "${FILTER}" <"$(release_json "${1}")"
|
OS=${2} ARCH="${3}" jq --raw-output "${FILTER}" <"$(release_json "${1}")"
|
||||||
)
|
)
|
||||||
|
|
||||||
latest_version () (
|
latest_version() (
|
||||||
FILTER='import "github" as gh; gh::latest_version'
|
FILTER='import "github" as gh; gh::latest_version'
|
||||||
jq --raw-output "${FILTER}" <"$(release_json "${1}")"
|
jq --raw-output "${FILTER}" <"$(release_json "${1}")"
|
||||||
)
|
)
|
||||||
|
|
||||||
age_in_seconds () (
|
age_in_seconds() (
|
||||||
echo $(( $(date +"%s") - $(stat -c "%Y" "${1}") ))
|
echo $(($(date +"%s") - $(stat -c "%Y" "${1}")))
|
||||||
)
|
)
|
||||||
|
|
||||||
release_json () (
|
release_json() (
|
||||||
DAY=$((60 * 60 * 24))
|
DAY=$((60 * 60 * 24))
|
||||||
PROJECT=$1
|
PROJECT=$1
|
||||||
JSON=${XDG_CACHE_HOME}/apps/meta/${PROJECT}/releases.json
|
JSON=${XDG_CACHE_HOME}/apps/meta/${PROJECT}/releases.json
|
||||||
mkdir -p "$(dirname "${JSON}")"
|
mkdir -p "$(dirname "${JSON}")"
|
||||||
if [[ ! -f "${JSON}" || "$(age_in_seconds "${JSON}")" -gt "${DAY}" ]]; then
|
if [[ ! -f ${JSON} || "$(age_in_seconds "${JSON}")" -gt ${DAY} ]]; then
|
||||||
curl --silent --output "${JSON}" "https://api.github.com/repos/${PROJECT}/releases"
|
curl --silent --output "${JSON}" "https://api.github.com/repos/${PROJECT}/releases"
|
||||||
fi
|
fi
|
||||||
echo "${JSON}"
|
echo "${JSON}"
|
||||||
)
|
)
|
||||||
|
@ -1,178 +1,184 @@
|
|||||||
#ft=bash
|
#ft=bash
|
||||||
|
|
||||||
bail () (
|
bail() (
|
||||||
>&2 echo "ERROR: $1"
|
echo >&2 "ERROR: $1"
|
||||||
exit 1
|
exit 1
|
||||||
)
|
)
|
||||||
|
|
||||||
must_be_root () (
|
must_be_root() (
|
||||||
if [ "$(id --user)" != 0 ]; then
|
if [ "$(id --user)" != 0 ]; then
|
||||||
bail "must run as root"
|
bail "must run as root"
|
||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
|
|
||||||
set_link () (
|
set_link() (
|
||||||
TARGET=${1}
|
TARGET=${1}
|
||||||
APP_DIR=${2}
|
APP_DIR=${2}
|
||||||
APP_PATH=${3:-}
|
APP_PATH=${3-}
|
||||||
|
|
||||||
pushd "$(dirname "${TARGET}")" >/dev/null || exit 1
|
pushd "$(dirname "${TARGET}")" >/dev/null || exit 1
|
||||||
unlink_if_set "${TARGET}"
|
unlink_if_set "${TARGET}"
|
||||||
REL_PATH=$(relative_path "$(dirname "${TARGET}")" "${APP_DIR}/current/${APP_PATH}")
|
REL_PATH=$(relative_path "$(dirname "${TARGET}")" "${APP_DIR}/current/${APP_PATH}")
|
||||||
ln -s "${REL_PATH}" "$(basename "${TARGET}")"
|
ln -s "${REL_PATH}" "$(basename "${TARGET}")"
|
||||||
popd >/dev/null || exit 1
|
popd >/dev/null || exit 1
|
||||||
)
|
)
|
||||||
|
|
||||||
get_os () (
|
get_os() (
|
||||||
case $(uname -s) in
|
case $(uname -s) in
|
||||||
Linux*) echo linux;;
|
Linux*) echo linux ;;
|
||||||
Darwin*) echo darwin;;
|
Darwin*) echo darwin ;;
|
||||||
Dragonfly*) echo dragonfly;;
|
Dragonfly*) echo dragonfly ;;
|
||||||
FreeBSD*) echo freebsd;;
|
FreeBSD*) echo freebsd ;;
|
||||||
NetBSD*) echo netbsd;;
|
NetBSD*) echo netbsd ;;
|
||||||
OpenBSD*) echo openbsd;;
|
OpenBSD*) echo openbsd ;;
|
||||||
SunOS*) echo solaris;;
|
SunOS*) echo solaris ;;
|
||||||
Windows_NT*) echo windows;;
|
Windows_NT*) echo windows ;;
|
||||||
CYGWIN_NT*) echo windows;;
|
CYGWIN_NT*) echo windows ;;
|
||||||
*) >&2 echo "unsupported os"; return;
|
*)
|
||||||
esac
|
echo >&2 "unsupported os"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
)
|
)
|
||||||
|
|
||||||
get_arch () (
|
get_arch() (
|
||||||
case $(uname -m) in
|
case $(uname -m) in
|
||||||
x86_64*) echo amd64;;
|
x86_64*) echo amd64 ;;
|
||||||
amd64*) echo amd64;;
|
amd64*) echo amd64 ;;
|
||||||
i386*) echo 386;;
|
i386*) echo 386 ;;
|
||||||
i686*) echo 386;;
|
i686*) echo 386 ;;
|
||||||
arm) echo arm;;
|
arm) echo arm ;;
|
||||||
armv7*) echo arm;;
|
armv7*) echo arm ;;
|
||||||
armv6*) echo arm;;
|
armv6*) echo arm ;;
|
||||||
armv8*) echo arm;;
|
armv8*) echo arm ;;
|
||||||
aarch64*) echo arm64;;
|
aarch64*) echo arm64 ;;
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
*)
|
||||||
esac
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
)
|
)
|
||||||
|
|
||||||
set_current_link () (
|
set_current_link() (
|
||||||
prefix=${1}
|
prefix=${1}
|
||||||
version=${2}
|
version=${2}
|
||||||
sudo=${3:-}
|
sudo=${3-}
|
||||||
current="${prefix}/current"
|
current="${prefix}/current"
|
||||||
if [ -L "${current}" ] ; then
|
if [ -L "${current}" ]; then
|
||||||
$sudo unlink "${current}"
|
$sudo unlink "${current}"
|
||||||
fi
|
fi
|
||||||
rel="$(relative_path "${prefix}" "${prefix}/${version}")"
|
rel="$(relative_path "${prefix}" "${prefix}/${version}")"
|
||||||
$sudo ln -s "$rel" "${current}"
|
$sudo ln -s "$rel" "${current}"
|
||||||
)
|
)
|
||||||
|
|
||||||
unlink_if_set () (
|
unlink_if_set() (
|
||||||
dir=$1
|
dir=$1
|
||||||
sudo=${2:-}
|
sudo=${2-}
|
||||||
if [ -L "${dir}" ]; then
|
if [ -L "${dir}" ]; then
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
${sudo} unlink "${dir}"
|
${sudo} unlink "${dir}"
|
||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
|
|
||||||
mkdir_if_missing () (
|
mkdir_if_missing() (
|
||||||
dir=${1}
|
dir=${1}
|
||||||
sudo=${2:-}
|
sudo=${2-}
|
||||||
if [ ! -d "${dir}" ]; then
|
if [ ! -d "${dir}" ]; then
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
$sudo mkdir -p "${dir}"
|
$sudo mkdir -p "${dir}"
|
||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
|
|
||||||
extract_zip () (
|
extract_zip() (
|
||||||
url=${1}
|
url=${1}
|
||||||
dest=${2}
|
dest=${2}
|
||||||
args=${3:-}
|
args=${3-}
|
||||||
sudo=${4:-}
|
sudo=${4-}
|
||||||
if [ -d "${dest}" ]; then
|
if [ -d "${dest}" ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir_if_missing "${dest}" "${sudo}"
|
mkdir_if_missing "${dest}" "${sudo}"
|
||||||
tmp_dir="$(mktemp -d)"
|
tmp_dir="$(mktemp -d)"
|
||||||
zipfile=${tmp_dir}/release.zip
|
zipfile=${tmp_dir}/release.zip
|
||||||
curl --silent --location --output "${zipfile}" "${url}"
|
curl --silent --location --output "${zipfile}" "${url}"
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
$sudo unzip -o "${zipfile}" -d "${dest}" ${args}
|
$sudo unzip -o "${zipfile}" -d "${dest}" ${args}
|
||||||
rm -rf "${tmp_dir}"
|
rm -rf "${tmp_dir}"
|
||||||
)
|
)
|
||||||
|
|
||||||
extract_tarball () (
|
extract_tarball() (
|
||||||
url=${1}
|
url=${1}
|
||||||
dest=${2}
|
dest=${2}
|
||||||
args=${3:-}
|
args=${3-}
|
||||||
sudo=${4:-}
|
sudo=${4-}
|
||||||
if [ -d "${dest}" ]; then
|
if [ -d "${dest}" ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir_if_missing "${dest}" "${sudo}"
|
mkdir_if_missing "${dest}" "${sudo}"
|
||||||
tmp_dir="$(mktemp -d)"
|
tmp_dir="$(mktemp -d)"
|
||||||
tarball=${tmp_dir}/release.tar.gz
|
tarball=${tmp_dir}/release.tar.gz
|
||||||
curl --silent --location --output "${tarball}" "${url}"
|
curl --silent --location --output "${tarball}" "${url}"
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
$sudo tar xf "${tarball}" --directory "${dest}" ${args}
|
$sudo tar xf "${tarball}" --directory "${dest}" ${args}
|
||||||
rm -rf "${tmp_dir}"
|
rm -rf "${tmp_dir}"
|
||||||
)
|
)
|
||||||
|
|
||||||
extract_binary () (
|
extract_binary() (
|
||||||
url=${1}
|
url=${1}
|
||||||
dest=${2}
|
dest=${2}
|
||||||
sudo=${3:-}
|
sudo=${3-}
|
||||||
if [ -f "${dest}" ]; then
|
if [ -f "${dest}" ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
mkdir_if_missing "$(dirname "${dest}")" "${sudo}"
|
mkdir_if_missing "$(dirname "${dest}")" "${sudo}"
|
||||||
tmp_file="$(mktemp)"
|
tmp_file="$(mktemp)"
|
||||||
curl --silent --location --output "${tmp_file}" "${url}"
|
curl --silent --location --output "${tmp_file}" "${url}"
|
||||||
$sudo chmod +x "${tmp_file}"
|
$sudo chmod +x "${tmp_file}"
|
||||||
$sudo mv "${tmp_file}" "${dest}"
|
$sudo mv "${tmp_file}" "${dest}"
|
||||||
)
|
)
|
||||||
|
|
||||||
relative_path() (
|
relative_path() (
|
||||||
# both $1 and $2 are absolute paths beginning with /
|
# both $1 and $2 are absolute paths beginning with /
|
||||||
# $1 must be a canonical path; that is none of its directory
|
# $1 must be a canonical path; that is none of its directory
|
||||||
# components may be ".", ".." or a symbolic link
|
# components may be ".", ".." or a symbolic link
|
||||||
#
|
#
|
||||||
# returns relative path to $2/$target from $1/$src
|
# returns relative path to $2/$target from $1/$src
|
||||||
src=$1
|
src=$1
|
||||||
target=$2
|
target=$2
|
||||||
|
|
||||||
common_part=$src
|
common_part=$src
|
||||||
result=
|
result=
|
||||||
|
|
||||||
while [ "${target#"$common_part"}" = "$target" ]; do
|
while [ "${target#"$common_part"}" = "$target" ]; do
|
||||||
# no match, means that candidate common part is not correct
|
# no match, means that candidate common part is not correct
|
||||||
# go up one level (reduce common part)
|
# go up one level (reduce common part)
|
||||||
common_part=$(dirname "$common_part")
|
common_part=$(dirname "$common_part")
|
||||||
# and record that we went back, with correct / handling
|
# and record that we went back, with correct / handling
|
||||||
if [ -z "$result" ]; then
|
if [ -z "$result" ]; then
|
||||||
result=..
|
result=..
|
||||||
else
|
else
|
||||||
result=../$result
|
result=../$result
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ "$common_part" = / ]; then
|
if [ "$common_part" = / ]; then
|
||||||
# special case for root (no common path)
|
# special case for root (no common path)
|
||||||
result=$result/
|
result=$result/
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# since we now have identified the common part,
|
# since we now have identified the common part,
|
||||||
# compute the non-common part
|
# compute the non-common part
|
||||||
forward_part=${target#"$common_part"}
|
forward_part=${target#"$common_part"}
|
||||||
|
|
||||||
# and now stick all parts together
|
# and now stick all parts together
|
||||||
if [ -n "$result" ] && [ -n "$forward_part" ]; then
|
if [ -n "$result" ] && [ -n "$forward_part" ]; then
|
||||||
result=$result$forward_part
|
result=$result$forward_part
|
||||||
elif [ -n "$forward_part" ]; then
|
elif [ -n "$forward_part" ]; then
|
||||||
# extra slash removal
|
# extra slash removal
|
||||||
result=${forward_part#?}
|
result=${forward_part#?}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf '%s' "$result"
|
printf '%s' "$result"
|
||||||
)
|
)
|
||||||
|
@ -1,14 +1,16 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
|
|
||||||
APP=age
|
APP=age
|
||||||
VERSION=${VERSION:-1.1.1}
|
VERSION=${VERSION:-1.1.1}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/FiloSottile/age/releases/download/v${VERSION}/age-v${VERSION}-$(get_os)-$(get_arch).tar.gz
|
URL=https://github.com/FiloSottile/age/releases/download/v${VERSION}/age-v${VERSION}-$(get_os)-$(get_arch).tar.gz
|
||||||
|
|
||||||
extract_tarball "${URL}" "${DEST}/${VERSION}" "--strip-components 1"
|
extract_tarball "${URL}" "${DEST}/${VERSION}" "--strip-components 1"
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
set_link "${XDG_BIN_HOME}/age" "${DEST}" age
|
set_link "${XDG_BIN_HOME}/age" "${DEST}" age
|
||||||
set_link "${XDG_BIN_HOME}/age-keygen" "${DEST}" age-keygen
|
set_link "${XDG_BIN_HOME}/age-keygen" "${DEST}" age-keygen
|
||||||
|
@ -1,21 +1,31 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
get_arch () {
|
|
||||||
case $(uname -m) in
|
|
||||||
x86_64*) echo amd64;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
|
|
||||||
APP=cmctl
|
APP=cmctl
|
||||||
VERSION=${VERSION:-1.6.1}
|
VERSION=${VERSION:-1.6.1}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/jetstack/cert-manager/releases/download/v${VERSION}/cmctl-$(get_os)-$(get_arch).tar.gz
|
|
||||||
|
main() (
|
||||||
|
set -x
|
||||||
|
URL=https://github.com/cert-manager/cert-manager/releases/download/v${VERSION}/cmctl-$(get_os)-$(get_arch).tar.gz
|
||||||
|
|
||||||
|
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo amd64 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
main "${@}"
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
|
||||||
|
@ -1,24 +1,34 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
get_arch () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -m) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
x86_64*) echo amd64;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=chezmoi
|
APP=chezmoi
|
||||||
VERSION=${VERSION:-2.22.1}
|
VERSION=${VERSION:-2.33.6}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/twpayne/chezmoi/releases/download/v${VERSION}/chezmoi_${VERSION}_$(get_os)_$(get_arch).tar.gz
|
|
||||||
|
main() (
|
||||||
|
URL=https://github.com/twpayne/chezmoi/releases/download/v${VERSION}/chezmoi_${VERSION}_$(get_os)_$(get_arch).tar.gz
|
||||||
|
|
||||||
|
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
set_link "${XDG_CONFIG_HOME}/bash/bashrc.d/chezmoi.sh" "${DEST}" "completions/chezmoi-completion.bash"
|
||||||
|
set_link "${XDG_CONFIG_HOME}/zsh/zshrc.d/chezmoi.zsh" "${DEST}" "completions/chezmoi.zsh"
|
||||||
|
set_link "${XDG_CONFIG_HOME}/fish/completions/chezmoi.fish" "${DEST}" "completions/chezmoi.fish"
|
||||||
|
set_link "${XDG_DATA_HOME}/doc/chezmoi" "${DEST}" "docs"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo amd64 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
main "${@}"
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
|
||||||
set_link "${XDG_CONFIG_HOME}/bash/bashrc.d/chezmoi.sh" "${DEST}" "completions/chezmoi-completion.bash"
|
|
||||||
set_link "${XDG_CONFIG_HOME}/zsh/zshrc.d/chezmoi.zsh" "${DEST}" "completions/chezmoi.zsh"
|
|
||||||
set_link "${XDG_CONFIG_HOME}/fish/completions/chezmoi.fish" "${DEST}" "completions/chezmoi.fish"
|
|
||||||
set_link "${XDG_DATA_HOME}/doc/chezmoi" "${DEST}" "docs"
|
|
||||||
|
@ -1,22 +1,32 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
get_arch () (
|
# shellcheck disable=SC1091
|
||||||
case $(uname -m) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
x86_64*) echo amd64;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
)
|
|
||||||
|
|
||||||
APP=dasel
|
APP=dasel
|
||||||
VERSION=${VERSION:-2.2.0}
|
VERSION=${VERSION:-2.2.0}
|
||||||
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/TomWright/dasel/releases/download/v${VERSION}/dasel_$(get_os)_$(get_arch)
|
|
||||||
|
|
||||||
mkdir_if_missing "${DEST}/${VERSION}"
|
main() (
|
||||||
curl --silent --location --output "${DEST}/${VERSION}/dasel" "${URL}"
|
URL=https://github.com/TomWright/dasel/releases/download/v${VERSION}/dasel_$(get_os)_$(get_arch)
|
||||||
chmod 755 "${DEST}/${VERSION}/dasel"
|
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
mkdir_if_missing "${DEST}/${VERSION}"
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
curl --silent --location --output "${DEST}/${VERSION}/dasel" "${URL}"
|
||||||
|
chmod 755 "${DEST}/${VERSION}/dasel"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo amd64 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
@ -1,20 +1,31 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
set -euo pipefail
|
||||||
|
|
||||||
function get_os () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -s) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
Linux*) echo unknown-linux-gnu;;
|
|
||||||
Darwin*) echo apple-darwin;;
|
|
||||||
*) >&2 echo "unsupported os: $(uname -s)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=dust
|
APP=dust
|
||||||
VERSION=${VERSION:-0.6.2}
|
VERSION=${VERSION:-0.8.6}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL="https://github.com/bootandy/dust/releases/download/v${VERSION}/dust-v${VERSION}-$(uname -m)-$(get_os).tar.gz"
|
|
||||||
|
main() (
|
||||||
|
URL=https://github.com/bootandy/dust/releases/download/v${VERSION}/dust-v${VERSION}-$(uname -m)-$(get_os).tar.gz
|
||||||
|
|
||||||
|
extract_tarball "${URL}" "${DEST}/${VERSION}" "--strip-component 1"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_os() (
|
||||||
|
case $(uname -s) in
|
||||||
|
Linux*) echo unknown-linux-gnu ;;
|
||||||
|
Darwin*) echo apple-darwin ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported os: $(uname -s)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
extract_tarball "${URL}" "${DEST}/${VERSION}" "--strip-component 1"
|
main "${@}"
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
|
||||||
|
@ -1,22 +1,30 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -e
|
set -euo pipefail
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1091
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
|
|
||||||
get_arch () {
|
|
||||||
case $(uname -m) in
|
|
||||||
x86_64*) echo amd64;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=evans
|
APP=evans
|
||||||
VERSION=${VERSION:-0.10.2}
|
VERSION=${VERSION:-v0.10.11}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/ktr0731/evans/releases/download/${VERSION}/evans_$(get_os)_$(get_arch).tar.gz
|
|
||||||
|
main() (
|
||||||
|
URL=https://github.com/ktr0731/evans/releases/download/${VERSION}/evans_$(get_os)_$(get_arch).tar.gz
|
||||||
|
|
||||||
|
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo amd64 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
main "${@}"
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
|
||||||
|
@ -1,36 +1,46 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
function get_os () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -s) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
Linux*) echo linux;;
|
|
||||||
Darwin*) echo darwin-10.12;;
|
|
||||||
*) >&2 echo "unsupported os: $(uname -s)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=gitea
|
APP=gitea
|
||||||
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
CURRENT=${DEST}/current
|
CURRENT=${DEST}/current
|
||||||
VERSION=${VERSION:-1.19.0}
|
VERSION=${VERSION:-1.19.0}
|
||||||
URL=https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-$(get_os)-$(get_arch).xz
|
|
||||||
|
main() (
|
||||||
if [ ! -d "${DEST}/${VERSION}" ]; then
|
URL=https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-$(get_os)-$(get_arch).xz
|
||||||
tmp_dir="$(mktemp -d)"
|
|
||||||
file=${tmp_dir}/gitea
|
if [ ! -d "${DEST}/${VERSION}" ]; then
|
||||||
curl --silent --retry 5 --location --output "${file}.xz" "${URL}"
|
tmp_dir="$(mktemp -d)"
|
||||||
xz --decompress "${file}.xz"
|
file=${tmp_dir}/gitea
|
||||||
chmod 755 "${file}"
|
curl --silent --retry 5 --location --output "${file}.xz" "${URL}"
|
||||||
mkdir -p "${DEST}/${VERSION}"
|
xz --decompress "${file}.xz"
|
||||||
mv "${file}" "${DEST}/${VERSION}/${APP}"
|
chmod 755 "${file}"
|
||||||
|
mkdir -p "${DEST}/${VERSION}"
|
||||||
rm -rf "${tmp_dir}"
|
mv "${file}" "${DEST}/${VERSION}/${APP}"
|
||||||
fi
|
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
rm -rf "${tmp_dir}"
|
||||||
|
fi
|
||||||
unlink_if_set "${XDG_BIN_HOME}/${APP}"
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
cd "${XDG_BIN_HOME}" || exit 1
|
|
||||||
ln -s "$(relative_path "${XDG_BIN_HOME}" "${CURRENT}/${APP}")" "${APP}"
|
unlink_if_set "${XDG_BIN_HOME}/${APP}"
|
||||||
cd - &> /dev/null || exit 1
|
cd "${XDG_BIN_HOME}" || exit 1
|
||||||
|
ln -s "$(relative_path "${XDG_BIN_HOME}" "${CURRENT}/${APP}")" "${APP}"
|
||||||
|
cd - &>/dev/null || exit 1
|
||||||
|
)
|
||||||
|
|
||||||
|
get_os() (
|
||||||
|
case $(uname -s) in
|
||||||
|
Linux*) echo linux ;;
|
||||||
|
Darwin*) echo darwin-10.12 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported os: $(uname -s)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
@ -1,38 +1,48 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
function get_os () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -s) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
Linux*) echo linux;;
|
|
||||||
Darwin*) echo darwin-10.12;;
|
|
||||||
*) >&2 echo "unsupported os: $(uname -s)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=gitea
|
APP=gitea
|
||||||
DEST=/usr/local/apps/${APP}
|
DEST=/usr/local/apps/${APP}
|
||||||
CURRENT=${DEST}/current
|
CURRENT=${DEST}/current
|
||||||
VERSION=${VERSION:-1.19.0}
|
VERSION=${VERSION:-1.19.0}
|
||||||
URL=https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-$(get_os)-$(get_arch).xz
|
|
||||||
BIN_DIR=/usr/local/bin
|
BIN_DIR=/usr/local/bin
|
||||||
|
|
||||||
if [ ! -d "${DEST}/${VERSION}" ]; then
|
main() (
|
||||||
tmp_dir="$(mktemp -d)"
|
URL=https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-$(get_os)-$(get_arch).xz
|
||||||
file=${tmp_dir}/gitea
|
|
||||||
curl --silent --retry 10 --location --output "${file}.xz" "${URL}"
|
if [ ! -d "${DEST}/${VERSION}" ]; then
|
||||||
xz --decompress "${file}.xz"
|
tmp_dir="$(mktemp -d)"
|
||||||
chmod 755 "${file}"
|
file=${tmp_dir}/gitea
|
||||||
sudo chown root:root "${file}"
|
curl --silent --retry 10 --location --output "${file}.xz" "${URL}"
|
||||||
sudo mkdir -p "${DEST}/${VERSION}"
|
xz --decompress "${file}.xz"
|
||||||
sudo mv "${file}" "${DEST}/${VERSION}/${APP}"
|
chmod 755 "${file}"
|
||||||
|
sudo chown root:root "${file}"
|
||||||
rm -rf "${tmp_dir}"
|
sudo mkdir -p "${DEST}/${VERSION}"
|
||||||
fi
|
sudo mv "${file}" "${DEST}/${VERSION}/${APP}"
|
||||||
set_current_link "${DEST}" "${VERSION}" "sudo"
|
|
||||||
|
rm -rf "${tmp_dir}"
|
||||||
unlink_if_set "${BIN_DIR}/${APP}" "sudo"
|
fi
|
||||||
cd "${BIN_DIR}" || exit 1
|
set_current_link "${DEST}" "${VERSION}" "sudo"
|
||||||
sudo ln -s "$(relative_path "${BIN_DIR}" "${CURRENT}/${APP}")" "${APP}"
|
|
||||||
cd - &> /dev/null || exit 1
|
unlink_if_set "${BIN_DIR}/${APP}" "sudo"
|
||||||
|
cd "${BIN_DIR}" || exit 1
|
||||||
|
sudo ln -s "$(relative_path "${BIN_DIR}" "${CURRENT}/${APP}")" "${APP}"
|
||||||
|
cd - &>/dev/null || exit 1
|
||||||
|
)
|
||||||
|
|
||||||
|
get_os() (
|
||||||
|
case $(uname -s) in
|
||||||
|
Linux*) echo linux ;;
|
||||||
|
Darwin*) echo darwin-10.12 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported os: $(uname -s)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
@ -1,20 +1,31 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
set -euo pipefail
|
||||||
|
|
||||||
function get_os () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -s) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
Linux*) echo linux;;
|
|
||||||
Darwin*) echo macOS;;
|
|
||||||
*) >&2 echo "unsupported os: $(uname -s)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=gotemplate
|
APP=gotemplate
|
||||||
VERSION=${VERSION:-3.7.0}
|
VERSION=${VERSION:-3.7.2}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
||||||
URL=https://github.com/coveooss/gotemplate/releases/download/v${VERSION}/gotemplate_${VERSION}_$(get_os)_64-bits.zip
|
|
||||||
|
|
||||||
extract_zip "${URL}" "${DEST}/${VERSION}"
|
main() (
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
URL=https://github.com/coveooss/gotemplate/releases/download/v${VERSION}/gotemplate_${VERSION}_$(get_os)_64-bits.zip
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
|
||||||
|
extract_zip "${URL}" "${DEST}/${VERSION}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_os() (
|
||||||
|
case $(uname -s) in
|
||||||
|
Linux*) echo linux ;;
|
||||||
|
Darwin*) echo macOS ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported os: $(uname -s)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
@ -1,20 +1,30 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
get_arch () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -m) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
x86_64*) echo 64bit;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=hugo
|
APP=hugo
|
||||||
VERSION=${VERSION:-0.88.1}
|
VERSION=${VERSION:-0.111.3}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
||||||
URL=https://github.com/gohugoio/hugo/releases/download/v${VERSION}/hugo_extended_${VERSION}_$(uname)-$(get_arch).tar.gz
|
|
||||||
|
|
||||||
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
main() (
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
URL=https://github.com/gohugoio/hugo/releases/download/v${VERSION}/hugo_extended_${VERSION}_$(uname)-$(get_arch).tar.gz
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
|
||||||
|
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo 64bit ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
@ -1,30 +1,37 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
set -e
|
|
||||||
|
|
||||||
get_arch () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -m) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
x86_64*) echo amd64;;
|
|
||||||
arm64*) echo arm64;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=kubectl
|
APP=kubectl
|
||||||
# https://dl.k8s.io/release/stable.txt
|
# https://dl.k8s.io/release/stable.txt
|
||||||
VERSION=${VERSION:-1.26.1}
|
VERSION=${VERSION:-1.26.1}
|
||||||
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://dl.k8s.io/release/v${VERSION}/bin/$(get_os)/$(get_arch)/kubectl
|
|
||||||
|
|
||||||
APP_PATH=${DEST}/${VERSION}/kubectl
|
APP_PATH=${DEST}/${VERSION}/kubectl
|
||||||
if [[ ! -f "${APP_PATH}" ]]; then
|
|
||||||
mkdir -p "${DEST}/${VERSION}"
|
|
||||||
curl --silent --location --output "${APP_PATH}" "${URL}"
|
|
||||||
chmod +x "${APP_PATH}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
main() (
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
URL=https://dl.k8s.io/release/v${VERSION}/bin/$(get_os)/$(get_arch)/kubectl
|
||||||
|
if [[ ! -f ${APP_PATH} ]]; then
|
||||||
|
mkdir -p "${DEST}/${VERSION}"
|
||||||
|
curl --silent --location --output "${APP_PATH}" "${URL}"
|
||||||
|
chmod +x "${APP_PATH}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo amd64 ;;
|
||||||
|
arm64*) echo arm64 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
@ -1,16 +1,16 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -e
|
set -euo pipefail
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1091
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
|
|
||||||
APP=minikube
|
APP=minikube
|
||||||
VERSION=${VERSION:-1.25.2}
|
VERSION=${VERSION:-1.30.1}
|
||||||
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/kubernetes/minikube/releases/download/v${VERSION}/minikube-$(get_os)-$(get_arch).tar.gz
|
URL=https://github.com/kubernetes/minikube/releases/download/v${VERSION}/minikube-$(get_os)-$(get_arch).tar.gz
|
||||||
|
|
||||||
extract_tarball "${URL}" "${DEST}/${VERSION}" "--strip-components 1"
|
extract_tarball "${URL}" "${DEST}/${VERSION}" "--strip-components 1"
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" minikube-$(get_os)-$(get_arch)
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "minikube-$(get_os)-$(get_arch)"
|
||||||
set_link "${XDG_BIN_HOME}/docker-machine-driver-kvm2" "${DEST}" docker-machine-driver-kvm2
|
set_link "${XDG_BIN_HOME}/docker-machine-driver-kvm2" "${DEST}" docker-machine-driver-kvm2
|
||||||
|
@ -1,20 +1,32 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
set -euo pipefail
|
||||||
|
|
||||||
function get_os () (
|
# shellcheck disable=SC1091
|
||||||
case $(uname -s) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
Linux*) echo lnx;;
|
|
||||||
Darwin*) echo mac;;
|
|
||||||
*) >&2 echo "unsupported os: $(uname -s)"; exit 1;;
|
|
||||||
esac
|
|
||||||
)
|
|
||||||
|
|
||||||
APP=procs
|
APP=procs
|
||||||
VERSION=${VERSION:-0.12.0}
|
VERSION=${VERSION:-0.14.0}
|
||||||
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/dalance/procs/releases/download/v${VERSION}/procs-v${VERSION}-$(uname -m)-$(get_os).zip
|
|
||||||
|
|
||||||
extract_zip "${URL}" "${DEST}/${VERSION}"
|
main() (
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
set -x
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
URL=https://github.com/dalance/procs/releases/download/v${VERSION}/procs-v${VERSION}-$(uname -m)-$(get_os).zip
|
||||||
|
|
||||||
|
extract_zip "${URL}" "${DEST}/${VERSION}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_os() (
|
||||||
|
case $(uname -s) in
|
||||||
|
Linux*) echo linux ;;
|
||||||
|
Darwin*) echo mac ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported os: $(uname -s)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
@ -1,59 +1,66 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -e
|
set -euo pipefail
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
# shellcheck disable=SC1091
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
|
|
||||||
get_os () (
|
VERSION=${VERSION:-23.1}
|
||||||
case $(uname -s) in
|
APP=protoc
|
||||||
Linux*) echo linux;;
|
APPS_DIR=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
Darwin*) echo osx;;
|
VER_DIR=${APPS_DIR}/${VERSION}
|
||||||
*) >&2 echo "unsupported os"; return;
|
|
||||||
esac
|
main() (
|
||||||
|
ZIP=protoc-${VERSION}-$(get_os)-$(get_arch).zip
|
||||||
|
TMP_DIR=$(mktemp -d)
|
||||||
|
DEST_FILE=$TMP_DIR/$ZIP
|
||||||
|
URL=https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/${ZIP}
|
||||||
|
|
||||||
|
if [[ ! -d ${VER_DIR} ]]; then
|
||||||
|
curl --output "${DEST_FILE}" --location "${URL}"
|
||||||
|
mkdir -p "${VER_DIR}"
|
||||||
|
unzip -o "${DEST_FILE}" -d "${VER_DIR}"
|
||||||
|
find "${VER_DIR}" -type f -exec chmod 644 {} \;
|
||||||
|
find "${VER_DIR}" -type d -exec chmod 755 {} \;
|
||||||
|
find "${VER_DIR}/bin" -type f -exec chmod 755 {} \;
|
||||||
|
fi
|
||||||
|
rm -rfv "$TMP_DIR"
|
||||||
|
|
||||||
|
set_current_link "${APPS_DIR}" "${VERSION}"
|
||||||
|
|
||||||
|
apps=$(find "${APPS_DIR}/current/bin" -maxdepth 1 -type f -exec basename {} \;)
|
||||||
|
pushd "${XDG_BIN_HOME}"
|
||||||
|
for bin in $apps; do
|
||||||
|
if [[ ! -s $bin ]]; then
|
||||||
|
ln -s \
|
||||||
|
"$(relative_path "${XDG_BIN_HOME}" "${APPS_DIR}/current/bin/${bin}")" \
|
||||||
|
"${bin}"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
popd
|
||||||
|
|
||||||
|
pushd "${XDG_INCLUDE_HOME}"
|
||||||
|
if [[ ! -s google ]]; then
|
||||||
|
ln -s \
|
||||||
|
"$(relative_path "${XDG_INCLUDE_HOME}" "${APPS_DIR}/current/include/google")" \
|
||||||
|
google
|
||||||
|
fi
|
||||||
|
popd
|
||||||
)
|
)
|
||||||
|
|
||||||
get_arch () (
|
get_os() (
|
||||||
uname -m
|
case $(uname -s) in
|
||||||
|
Linux*) echo linux ;;
|
||||||
|
Darwin*) echo osx ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported os"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
)
|
)
|
||||||
|
|
||||||
VERSION=${VERSION:-22.3}
|
get_arch() (
|
||||||
APP=protoc
|
uname -m
|
||||||
APPS_DIR=${XDG_DATA_HOME}/apps/releases/${APP}
|
)
|
||||||
VER_DIR=${APPS_DIR}/${VERSION}
|
|
||||||
|
|
||||||
ZIP=protoc-${VERSION}-$(get_os)-$(get_arch).zip
|
main "${@}"
|
||||||
TMP_DIR=$(mktemp -d)
|
|
||||||
DEST_FILE=$TMP_DIR/$ZIP
|
|
||||||
URL=https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/${ZIP}
|
|
||||||
|
|
||||||
if [[ ! -d "${VER_DIR}" ]]; then
|
|
||||||
curl --output "${DEST_FILE}" --location "${URL}"
|
|
||||||
mkdir -p "${VER_DIR}"
|
|
||||||
unzip -o "${DEST_FILE}" -d "${VER_DIR}"
|
|
||||||
find "${VER_DIR}" -type f -exec chmod 644 {} \;
|
|
||||||
find "${VER_DIR}" -type d -exec chmod 755 {} \;
|
|
||||||
find "${VER_DIR}/bin" -type f -exec chmod 755 {} \;
|
|
||||||
fi
|
|
||||||
rm -rfv "$TMP_DIR"
|
|
||||||
|
|
||||||
set_current_link "${APPS_DIR}" "${VERSION}"
|
|
||||||
|
|
||||||
apps=$(find "${APPS_DIR}/current/bin" -maxdepth 1 -type f -exec basename {} \;)
|
|
||||||
pushd "${XDG_BIN_HOME}"
|
|
||||||
for bin in $apps; do
|
|
||||||
if [[ ! -s $bin ]]; then
|
|
||||||
ln -s \
|
|
||||||
"$(relative_path "${XDG_BIN_HOME}" "${APPS_DIR}/current/bin/${bin}")" \
|
|
||||||
"${bin}"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
popd
|
|
||||||
|
|
||||||
pushd "${XDG_INCLUDE_HOME}"
|
|
||||||
if [[ ! -s google ]]; then
|
|
||||||
ln -s \
|
|
||||||
"$(relative_path "${XDG_INCLUDE_HOME}" "${APPS_DIR}/current/include/google")" \
|
|
||||||
google
|
|
||||||
fi
|
|
||||||
popd
|
|
||||||
|
@ -1,22 +1,32 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
get_arch () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -m) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
x86_64*) echo amd64;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=shfmt
|
APP=shfmt
|
||||||
VERSION=${VERSION:-3.3.1}
|
VERSION=${VERSION:-3.6.0}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/mvdan/sh/releases/download/v${VERSION}/shfmt_v${VERSION}_$(get_os)_$(get_arch)
|
|
||||||
|
main() (
|
||||||
|
URL=https://github.com/mvdan/sh/releases/download/v${VERSION}/shfmt_v${VERSION}_$(get_os)_$(get_arch)
|
||||||
|
|
||||||
|
mkdir_if_missing "${DEST}/${VERSION}"
|
||||||
|
curl --silent --location --output "${DEST}/${VERSION}/${APP}" "${URL}"
|
||||||
|
chmod 755 "${DEST}/${VERSION}/${APP}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo amd64 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
mkdir_if_missing "${DEST}/${VERSION}"
|
main "${@}"
|
||||||
curl --silent --location --output "${DEST}/${VERSION}/${APP}" "${URL}"
|
|
||||||
chmod 755 "${DEST}/${VERSION}/${APP}"
|
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
|
||||||
|
@ -1,27 +1,37 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
get_arch () (
|
# shellcheck disable=SC1091
|
||||||
case $(uname -m) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
x86_64*) echo i686;;
|
|
||||||
amd64*) echo i686;;
|
|
||||||
i386*) echo i686;;
|
|
||||||
i686*) echo i686;;
|
|
||||||
arm) echo arm;;
|
|
||||||
aarch64*) echo aarch64;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
)
|
|
||||||
|
|
||||||
APP=ttyd
|
APP=ttyd
|
||||||
VERSION=${VERSION:-1.7.2}
|
VERSION=${VERSION:-1.7.2}
|
||||||
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/tsl0922/ttyd/releases/download/${VERSION}/ttyd.$(get_arch)
|
|
||||||
|
|
||||||
mkdir_if_missing "${DEST}/${VERSION}"
|
main() (
|
||||||
curl --silent --location --output "${DEST}/${VERSION}/${APP}" "${URL}"
|
URL=https://github.com/tsl0922/ttyd/releases/download/${VERSION}/ttyd.$(get_arch)
|
||||||
chmod 755 "${DEST}/${VERSION}/${APP}"
|
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
mkdir_if_missing "${DEST}/${VERSION}"
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
curl --silent --location --output "${DEST}/${VERSION}/${APP}" "${URL}"
|
||||||
|
chmod 755 "${DEST}/${VERSION}/${APP}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo i686 ;;
|
||||||
|
amd64*) echo i686 ;;
|
||||||
|
i386*) echo i686 ;;
|
||||||
|
i686*) echo i686 ;;
|
||||||
|
arm) echo arm ;;
|
||||||
|
aarch64*) echo aarch64 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
|
main "${@}"
|
||||||
|
@ -1,20 +1,30 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
# shellcheck disable=SC1090
|
set -euo pipefail
|
||||||
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
|
||||||
|
|
||||||
get_arch () {
|
# shellcheck disable=SC1091
|
||||||
case $(uname -m) in
|
source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
|
||||||
x86_64*) echo amd64;;
|
|
||||||
*) >&2 echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
||||||
esac
|
|
||||||
}
|
|
||||||
|
|
||||||
APP=vegeta
|
APP=vegeta
|
||||||
VERSION=${VERSION:-12.8.4}
|
VERSION=${VERSION:-12.8.4}
|
||||||
DEST="${XDG_DATA_HOME}/apps/releases/${APP}"
|
DEST=${XDG_DATA_HOME}/apps/releases/${APP}
|
||||||
URL=https://github.com/tsenart/vegeta/releases/download/v${VERSION}/vegeta_${VERSION}_$(get_os)_$(get_arch).tar.gz
|
|
||||||
|
main() (
|
||||||
|
URL=https://github.com/tsenart/vegeta/releases/download/v${VERSION}/vegeta_${VERSION}_$(get_os)_$(get_arch).tar.gz
|
||||||
|
|
||||||
|
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
||||||
|
set_current_link "${DEST}" "${VERSION}"
|
||||||
|
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
||||||
|
)
|
||||||
|
|
||||||
|
get_arch() (
|
||||||
|
case $(uname -m) in
|
||||||
|
x86_64*) echo amd64 ;;
|
||||||
|
*)
|
||||||
|
echo >&2 "unsupported architecture: $(uname -m)"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
)
|
||||||
|
|
||||||
extract_tarball "${URL}" "${DEST}/${VERSION}"
|
main "${@}"
|
||||||
set_current_link "${DEST}" "${VERSION}"
|
|
||||||
set_link "${XDG_BIN_HOME}/${APP}" "${DEST}" "${APP}"
|
|
||||||
|
Loading…
Reference in New Issue