Files
Burn-My-Windows/kwin/build.sh
T
2022-05-28 05:52:25 +02:00

54 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# -------------------------------------------------------------------------------------- #
# ) ( #
# ( /( ( ( ) ( ( ( ( )\ ) ( ( #
# )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( #
# ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ #
# | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) #
# | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< #
# |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ #
# |__/ #
# Copyright (c) 2021 Simon Schneegans #
# Released under the GPLv3 or later. See LICENSE file for details. #
# -------------------------------------------------------------------------------------- #
# Exit the script when one command fails.
set -e
# Go to the script's directory.
cd "$( cd "$( dirname "$0" )" && pwd )" || \
{ echo "ERROR: Could not find kwin directory."; exit 1; }
BUILD_DIR="_build"
mkdir -p "${BUILD_DIR}"
# $1: The nick of the effect (e.g. "tv")
# $2: The name of the effect (e.g. "TV Effect")
# $3: A short description of the effect
generate() {
cp -r "kwin4_effect_$1" "${BUILD_DIR}"
# Create resource directories.
mkdir -p "${BUILD_DIR}/kwin4_effect_$1/contents/shaders"
mkdir -p "${BUILD_DIR}/kwin4_effect_$1/contents/code"
sed -e "s;%NICK%;$1;g" -e "s;%NAME%;$2;g" -e "s;%DESCRIPTION%;$3;g" \
metadata.desktop.in > "${BUILD_DIR}/kwin4_effect_$1/metadata.desktop"
sed -e "s;%NICK%;$1;g" -e "s;%NAME%;$2;g" -e "s;%DESCRIPTION%;$3;g" \
main.js.in > "${BUILD_DIR}/kwin4_effect_$1/contents/code/main.js"
SHADER="${BUILD_DIR}/kwin4_effect_$1/contents/shaders/$1.frag"
echo "#version 140" > $SHADER
echo "#define KWIN" >> $SHADER
echo "" >> $SHADER
echo "// This file is automatically generated during the build process." >> $SHADER
echo "" >> $SHADER
cat "../resources/shaders/common.glsl" >> $SHADER
cat "../resources/shaders/$1.frag" >> $SHADER
}
generate "tv" "TV Effect" "Make windows close like turning off a TV"
# generate "fire" "Fire" "Make windows burn"