#!/usr/bin/env bash set -x set -e # shellcheck disable=SC1090 source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh" VERSION=${VERSION:-3.15.6} APP=protoc APPS_DIR=${XDG_DATA_HOME}/buddy-up/apps/${APP} VER_DIR=${APPS_DIR}/${VERSION} OS=$(get_os) if [[ $OS == darwin ]]; then OS=osx fi ARCH=$(get_arch) if [[ $ARCH == amd64 ]]; then ARCH=x86_64 fi ZIP=protoc-${VERSION}-${OS}-${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}" 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 -perm +111 -type f -exec basename {} \;) cd "${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