#!/usr/bin/env bash # This setup script should do the minimum work required to download the release package, unzip it, and kick off the # setup script contained within. # exit when any command fails set -e # Make sure only root can run our script if [ "$(id -u)" != "0" ]; then echo "This script must be run as root" 1>&2 exit 1 fi start_dir=$(pwd) ARCH=$(uname -m) if [ "$ARCH" != "x86_64" ]; then echo "Breezy Vulkan only supports x86_64 currently" exit 1 fi # create temp directory tmp_dir=$(mktemp -d -t breezy-vulkan-XXXXXXXXXX) pushd $tmp_dir > /dev/null echo "Created temp directory: ${tmp_dir}" binary_download_url="https://github.com/wheaney/breezy-desktop/releases/latest/download/breezyVulkan-$ARCH.tar.gz" libs_download_url="https://github.com/wheaney/breezy-desktop/releases/latest/download/breezyVulkan-libs-$ARCH.tar.gz" LIBS_FILE_NAME="breezyVulkan-libs-$ARCH.tar.gz" FILE_NAME="breezyVulkan-$ARCH.tar.gz" if [ "$1" = "-v" ] then metrics_version="$2" local_dir_arg="$3" elif [ "$1" = "--tag" ] && [ -n "$2" ] then binary_download_url="https://github.com/wheaney/breezy-desktop/releases/download/$2/breezyVulkan-$ARCH.tar.gz" libs_download_url="https://github.com/wheaney/breezy-desktop/releases/download/$2/breezyVulkan-libs-$ARCH.tar.gz" else local_dir_arg="$1" fi if [ -n "$local_dir_arg" ] then if [[ "$local_dir_arg" = /* ]]; then local_dir="$local_dir_arg" else local_dir=$(realpath "$start_dir/$local_dir_arg") fi binary_path_arg="$local_dir/$FILE_NAME" if [ ! -f "$binary_path_arg" ]; then echo "Error: Breezy Vulkan archive not found at $binary_path_arg" 1>&2 exit 1 fi lib_path_arg="$local_dir/$LIBS_FILE_NAME" if [ ! -f "$lib_path_arg" ]; then echo "Error: Breezy Vulkan libs archive not found at $lib_path_arg" 1>&2 exit 1 fi fi if [ -z "$binary_path_arg" ] then # download and unzip the binary binary_path_arg="$FILE_NAME" echo "Downloading to: ${tmp_dir}/$binary_path_arg" curl -L "$binary_download_url" > "$binary_path_arg" else cp "$binary_path_arg" "$tmp_dir" fi echo "Extracting to: ${tmp_dir}/breezy_vulkan" tar -xf $(basename "$binary_path_arg") if [ -z "$lib_path_arg" ] then lib_path_arg="$LIBS_FILE_NAME" echo "Downloading to: ${tmp_dir}/$lib_path_arg" curl -L "$libs_download_url" > "$lib_path_arg" else cp "$lib_path_arg" "$tmp_dir" fi echo "Extracting lib to: ${tmp_dir}/breezy_vulkan" tar -xf $(basename "$lib_path_arg") mv breezy_desktop_lib/* breezy_vulkan/ pushd breezy_vulkan > /dev/null # run the setup script that comes with this release bin/setup $metrics_version echo "Deleting temp directory: ${tmp_dir}" rm -rf $tmp_dir cd "$(dirs -l -0)" && dirs -c