99 lines
2.6 KiB
Bash
Executable File
99 lines
2.6 KiB
Bash
Executable File
#!/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
|