| 
						
						
						
					 | 
					 | 
					@ -1,33 +1,35 @@
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					#!/usr/bin/env bash
 | 
					 | 
					 | 
					 | 
					#!/usr/bin/env bash
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					set -x
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					set -e
 | 
					 | 
					 | 
					 | 
					set -e
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					# shellcheck disable=SC1090
 | 
					 | 
					 | 
					 | 
					# shellcheck disable=SC1090
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
 | 
					 | 
					 | 
					 | 
					source "${XDG_DATA_HOME}/buddy-up/includes/utils.sh"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					VERSION=${VERSION:-3.15.6}
 | 
					 | 
					 | 
					 | 
					get_os () (
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					APP=protoc
 | 
					 | 
					 | 
					 | 
					    case $(uname -s) in
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					APPS_DIR=${XDG_DATA_HOME}/buddy-up/apps/${APP}
 | 
					 | 
					 | 
					 | 
					        Linux*)         echo linux;;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					VER_DIR=${APPS_DIR}/${VERSION}
 | 
					 | 
					 | 
					 | 
					        Darwin*)        echo osx;;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        *)          >&2 echo "unsupported os"; return;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    esac
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					OS=$(get_os)
 | 
					 | 
					 | 
					 | 
					get_arch () (
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					if [[ $OS == darwin ]]; then
 | 
					 | 
					 | 
					 | 
					    uname -m
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    OS=osx
 | 
					 | 
					 | 
					 | 
					)
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					fi
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					ARCH=$(get_arch)
 | 
					 | 
					 | 
					 | 
					VERSION=${VERSION:-3.19.4}
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					if [[ $ARCH == amd64 ]]; then
 | 
					 | 
					 | 
					 | 
					APP=protoc
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    ARCH=x86_64
 | 
					 | 
					 | 
					 | 
					APPS_DIR=${XDG_DATA_HOME}/apps/releases/${APP}
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					fi
 | 
					 | 
					 | 
					 | 
					VER_DIR=${APPS_DIR}/${VERSION}
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					ZIP=protoc-${VERSION}-${OS}-${ARCH}.zip
 | 
					 | 
					 | 
					 | 
					ZIP=protoc-${VERSION}-$(get_os)-$(get_arch).zip
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					TMP_DIR=$(mktemp -d)
 | 
					 | 
					 | 
					 | 
					TMP_DIR=$(mktemp -d)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					DEST_FILE=$TMP_DIR/$ZIP
 | 
					 | 
					 | 
					 | 
					DEST_FILE=$TMP_DIR/$ZIP
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					URL=https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/${ZIP}
 | 
					 | 
					 | 
					 | 
					URL=https://github.com/protocolbuffers/protobuf/releases/download/v${VERSION}/${ZIP}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					if [[ ! -d "${VER_DIR}" ]]; then
 | 
					 | 
					 | 
					 | 
					if [[ ! -d "${VER_DIR}" ]]; then
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    curl --output "${DEST_FILE}" --location "${URL}"
 | 
					 | 
					 | 
					 | 
					    curl --output "${DEST_FILE}" --location "${URL}"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    mkdir -p "${VER_DIR}"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    unzip -o "${DEST_FILE}" -d "${VER_DIR}"
 | 
					 | 
					 | 
					 | 
					    unzip -o "${DEST_FILE}" -d "${VER_DIR}"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    find "${VER_DIR}" -type f -exec chmod 644 {} \;
 | 
					 | 
					 | 
					 | 
					    find "${VER_DIR}" -type f -exec chmod 644 {} \;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    find "${VER_DIR}" -type d -exec chmod 755 {} \;
 | 
					 | 
					 | 
					 | 
					    find "${VER_DIR}" -type d -exec chmod 755 {} \;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -38,7 +40,7 @@ rm -rfv "$TMP_DIR"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					set_current_link "${APPS_DIR}" "${VERSION}"
 | 
					 | 
					 | 
					 | 
					set_current_link "${APPS_DIR}" "${VERSION}"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					apps=$(find "${APPS_DIR}/current/bin" -maxdepth 1 -perm +111 -type f -exec basename {} \;)
 | 
					 | 
					 | 
					 | 
					apps=$(find "${APPS_DIR}/current/bin" -maxdepth 1 -perm +111 -type f -exec basename {} \;)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					cd "${XDG_BIN_HOME}"
 | 
					 | 
					 | 
					 | 
					pushd "${XDG_BIN_HOME}"
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					for bin in $apps; do
 | 
					 | 
					 | 
					 | 
					for bin in $apps; do
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if [[ ! -s $bin ]]; then
 | 
					 | 
					 | 
					 | 
					    if [[ ! -s $bin ]]; then
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        ln -s \
 | 
					 | 
					 | 
					 | 
					        ln -s \
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -46,3 +48,12 @@ for bin in $apps; do
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            "${bin}"
 | 
					 | 
					 | 
					 | 
					            "${bin}"
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    fi
 | 
					 | 
					 | 
					 | 
					    fi
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					done
 | 
					 | 
					 | 
					 | 
					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
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					 | 
					
 
 |