#!/bin/bash

set -e

ASSET_DIR="/usr/share/breezy-desktop/vulkan"

if [ "$(id -u)" = 0 ]; then
    echo "This script must not be run as root" >&2
    exit 1
fi

: "${XDG_DATA_HOME:=$HOME/.local/share}"
: "${XDG_CONFIG_HOME:=$HOME/.config}"

LAYER_DIR="$XDG_DATA_HOME/vulkan/implicit_layer.d"
RESHADE_DIR="$XDG_CONFIG_HOME/reshade"
VKBASALT_CONFIG_DIR="$XDG_CONFIG_HOME/vkBasalt"
GAMESCOPE_DIR="$XDG_DATA_HOME/gamescope/reshade"

echo "Installing the Breezy Vulkan layer for $USER"
mkdir -p "$LAYER_DIR" \
         "$RESHADE_DIR/Shaders" "$RESHADE_DIR/Textures" \
         "$VKBASALT_CONFIG_DIR" \
         "$GAMESCOPE_DIR/Shaders" "$GAMESCOPE_DIR/Textures"

install -m644 "$ASSET_DIR/breezy_vkBasalt.json" "$LAYER_DIR/breezy_vkBasalt.json"

install -m644 "$ASSET_DIR"/*.frag "$ASSET_DIR"/*.fxh "$RESHADE_DIR/Shaders/"
install -m644 "$ASSET_DIR"/*.png "$RESHADE_DIR/Textures/"

install -m644 "$ASSET_DIR"/*.frag "$ASSET_DIR"/*.fxh "$GAMESCOPE_DIR/Shaders/"
install -m644 "$ASSET_DIR"/*.png "$GAMESCOPE_DIR/Textures/"

sed -e "s|/path/to/reshade-shaders|$RESHADE_DIR|" \
    -e "s|/path/to/sombrero|$RESHADE_DIR/Shaders/Sombrero.frag|" \
    "$ASSET_DIR/vkBasalt.conf" > "$VKBASALT_CONFIG_DIR/vkBasalt.conf"

echo "Done. Export ENABLE_BREEZY_VKBASALT=1 to enable the layer in a Vulkan application."
