1#!/usr/local/bin/bash
2
3# Check command availability
4function has_command() {
5  command -v $1 > /dev/null
6}
7
8if [ ! "$(which sassc 2> /dev/null)" ]; then
9  echo sassc needs to be installed to generate the css.
10  if has_command zypper; then
11    sudo zypper in sassc
12  elif has_command apt; then
13    sudo apt install sassc
14  elif has_command dnf; then
15    sudo dnf install -y sassc
16  elif has_command yum; then
17    sudo yum install sassc
18  elif has_command pacman; then
19    sudo pacman -S --noconfirm sassc
20  fi
21fi
22
23SASSC_OPT="-M -t expanded"
24
25_COLOR_VARIANTS=('-light' '-dark')
26if [ ! -z "${COLOR_VARIANTS:-}" ]; then
27  IFS=', ' read -r -a _COLOR_VARIANTS <<< "${COLOR_VARIANTS:-}"
28fi
29
30_TRANS_VARIANTS=('' '-solid')
31if [ ! -z "${TRANS_VARIANTS:-}" ]; then
32  IFS=', ' read -r -a _TRANS_VARIANTS <<< "${TRANS_VARIANTS:-}"
33fi
34
35_THEME_VARIANTS=('' '-blue' '-purple' '-pink' '-red' '-orange' '-yellow' '-green' '-grey')
36if [ ! -z "${THEME_VARIANTS:-}" ]; then
37  IFS=', ' read -r -a _THEME_VARIANTS <<< "${THEME_VARIANTS:-}"
38fi
39
40for color in "${_COLOR_VARIANTS[@]}"; do
41  for trans in "${_TRANS_VARIANTS[@]}"; do
42    for theme in "${_THEME_VARIANTS[@]}"; do
43      sassc $SASSC_OPT src/main/gtk-3.0/gtk${color}${trans}${theme}.{scss,css}
44      echo "==> Generating the 3.0 gtk${color}${trans}${theme}.css..."
45      sassc $SASSC_OPT src/main/gtk-4.0/gtk${color}${trans}${theme}.{scss,css}
46      echo "==> Generating the 4.0 gtk${color}${trans}${theme}.css..."
47      sassc $SASSC_OPT src/main/gnome-shell/shell-3-28/gnome-shell${color}${trans}${theme}.{scss,css}
48      echo "==> Generating the 3.28 gnome-shell${color}${trans}${theme}.css..."
49      sassc $SASSC_OPT src/main/gnome-shell/shell-40-0/gnome-shell${color}${trans}${theme}.{scss,css}
50      echo "==> Generating the 40.0 gnome-shell${color}${trans}${theme}.css..."
51      sassc $SASSC_OPT src/main/cinnamon/cinnamon${color}${trans}${theme}.{scss,css}
52      echo "==> Generating the cinnamon${color}${trans}${theme}.css..."
53    done
54  done
55done
56
57sassc $SASSC_OPT src/other/dash-to-dock/stylesheet.{scss,css}
58echo "==> Generating dash-to-dock stylesheet.css..."
59sassc $SASSC_OPT src/other/dash-to-dock/stylesheet-dark.{scss,css}
60echo "==> Generating dash-to-dock stylesheet-dark.css..."
61