Oldiewaita/source/compile.sh

148 lines
2.9 KiB
Bash
Executable File

#! /bin/bash
showHelp () {
echo "Usage: $(basename "$0") --help | source_dir dest_dir variant | variant"
echo "Meaning:"
echo -e "\t --help: display help"
echo -e "\t source_dir: source to compile"
echo -e "\t dest_dir: destination to copy resulting gtk.css to."
echo -e "\t variant: either light or dark variant"
echo -e "If no source and destination are specified, source is current directory and destination is parent directory"
}
showErrorUsage () {
# shows an error message (paramter 1) and then calls showHelp
echo error: $1
showHelp
}
if [ ! "$(which sassc 2> /dev/null)" ]; then
showErrorUsage "sassc needs to be installed to generate the css."
exit 1
fi
if [ $# -gt 3 ] || [ $# -eq 2 ]
then
showErrorUsage "incorrect number of parameters"
exit 1
fi
if [[ $1 == "--help" || $1 == "-h" ]]
then
echo "Calling for help"
showHelp
exit 0;
fi
if [ $# -le 1 ]
then
source_dir=.
dest_dir=..
else
source_dir=$1
dest_dir=$2
fi
if [ $# -eq 1 ]
then
variant=$1
else
variant=$3
fi
if [ "$variant" == "light" ]
then
gtkthree=""
gtkfour="light"
elif [ "$variant" == "dark" ]
then
gtkthree="-dark"
gtkfour="dark"
else
showErrorUsage "invalid variant name '$variant'. Also: high contrast not yet supported."
exit 2
fi
echo -e "\nCompiling with the following values: "
echo -e " source: $source_dir"
echo -e " destination: $dest_dir"
echo -e " variant: $variant\n\n"
if [ ! -d "$source_dir" ]
then
showErrorUsage "source directory not found"
exit 2
fi
if [ ! -d "$dest_dir" ]
then
showErrorUsage "destination directory not found"
exit 2
fi
# ----------------- gtk3 -------------------------
echo "Compiling gtk3..."
if [ ! -d "$source_dir/gtk3" ]
then
echo "Error: source directory must contain gtk3 subdirectory"
exit 1
fi
sassc -M -t compact "$source_dir/gtk3/gtk-contained$gtkthree.scss" "$source_dir/gtk3/gtk-new.css"
if [ $? -ne 0 ]
then
echo "Error: sassc exited with error, aborting deployment of gtk3"
else
echo "Deploying gtk3..."
if [ ! -d "$dest_dir/gtk-3.0" ]
then
mkdir "$dest_dir/gtk-3.0"
fi
cp "$source_dir/gtk3/gtk-new.css" "$dest_dir/gtk-3.0/gtk.css"
if [ $? -ne 0 ]
then
echo "Deployment: error copying to destination directory."
else
echo "...done!"
fi
fi
# ----------------- gtk4 -------------------------
echo -e "\n\n\nCompiling gtk4..."
if [ ! -d "$source_dir/gtk4" ]
then
echo "Error: source directory must contain gtk4 subdirectory"
exit 1
fi
sassc -M -t compact "$source_dir/gtk4/Default-$gtkfour.scss" "$source_dir/gtk4/gtk-new.css"
if [ $? -ne 0 ]
then
echo "Error: sassc exited with error, aborting deployment of gtk4"
else
echo "Deploying gtk4..."
if [ ! -d "$dest_dir/gtk-4.0" ]
then
mkdir "$dest_dir/gtk-4.0"
fi
cp "$source_dir/gtk4/gtk-new.css" "$dest_dir/gtk-4.0/gtk.css"
if [ $? -ne 0 ]
then
echo "Deployment: error copying to destination directory."
else
echo "...done!"
fi
fi