Changeset View
Changeset View
Standalone View
Standalone View
src/build_theme.sh
1 | #!/bin/sh | 1 | #!/bin/sh | ||
---|---|---|---|---|---|
2 | set -e | 2 | set -e | ||
3 | 3 | | |||
4 | # Usage: create_folders <target-directory> | 4 | # Usage: create_folders <target-directory> | ||
5 | create_folders () { | 5 | create_folders () { | ||
6 | for j in gtk-2.0 gtk-3.18 gtk-3.20; do | 6 | for j in gtk-2.0 gtk-3.0; do | ||
7 | if ! [ -d "$1/$j" ]; then | 7 | if ! [ -d "$1/$j" ]; then | ||
8 | mkdir -p "$1/$j" | 8 | mkdir -p "$1/$j" | ||
9 | fi | 9 | fi | ||
10 | done | 10 | done | ||
11 | } | 11 | } | ||
12 | 12 | | |||
13 | # Usage: build_sass <source-directory> <target-directory> <include-directory> | 13 | # Usage: build_sass <source-directory> <target-directory> <include-directory> | ||
14 | build_sass() { | 14 | build_sass() { | ||
15 | if command -v sassc >/dev/null 2>&1; then | 15 | if command -v sassc >/dev/null 2>&1; then | ||
16 | sassc -I "$3" "$1" "$2" | 16 | sassc -I "$3" "$1" "$2" | ||
17 | else | 17 | else | ||
18 | sass -I "$3" --cache-location /tmp/sass-cache "$1" "$2" | 18 | sass -I "$3" --cache-location /tmp/sass-cache "$1" "$2" | ||
19 | fi | 19 | fi | ||
20 | } | 20 | } | ||
21 | 21 | | |||
22 | # Usage: install_theme <theme-directory> <theme-name> <install-target-dir> | 22 | # Usage: install_theme <theme-directory> <theme-name> <install-target-dir> | ||
23 | # If <install-target-dir> is unset or empty, install to $HOME/.local/share/themes/$THEME_NAME | 23 | # If <install-target-dir> is unset or empty, install to $HOME/.local/share/themes/$THEME_NAME | ||
24 | install_theme () { | 24 | install_theme () { | ||
25 | THEME_INSTALL_TARGET="$3" | 25 | THEME_INSTALL_TARGET="$3" | ||
26 | if [ -z "${THEME_INSTALL_TARGET}" ]; then | 26 | if [ -z "${THEME_INSTALL_TARGET}" ]; then | ||
27 | THEME_INSTALL_TARGET="${HOME}/.local/share/themes/$2" | 27 | THEME_INSTALL_TARGET="${HOME}/.local/share/themes/$2" | ||
28 | fi | 28 | fi | ||
29 | echo "Installing into ${THEME_INSTALL_TARGET}" | 29 | echo "Installing into ${THEME_INSTALL_TARGET}" | ||
30 | mkdir -p "${THEME_INSTALL_TARGET}" | 30 | mkdir -p "${THEME_INSTALL_TARGET}" | ||
31 | for dir in assets gtk-2.0 gtk-3.18 gtk-3.20; do | 31 | for dir in assets gtk-2.0 gtk-3.0; do | ||
32 | if [ -d "${THEME_INSTALL_TARGET}/$dir" ]; then | 32 | if [ -d "${THEME_INSTALL_TARGET}/$dir" ]; then | ||
33 | rm -rf "${THEME_INSTALL_TARGET:?}/$dir" | 33 | rm -rf "${THEME_INSTALL_TARGET:?}/$dir" | ||
34 | fi | 34 | fi | ||
35 | mv -f "$1/$dir" "${THEME_INSTALL_TARGET}" | 35 | mv -f "$1/$dir" "${THEME_INSTALL_TARGET}" | ||
36 | done | 36 | done | ||
37 | rmdir "$1" | 37 | rmdir "$1" | ||
38 | } | 38 | } | ||
39 | 39 | | |||
40 | # Usage render_theme <colorscheme> <theme-name> <theme-install-target> <colorschemebase> | 40 | # Usage render_theme <colorscheme> <theme-name> <theme-install-target> <colorschemebase> | ||
41 | render_theme () { | 41 | render_theme () { | ||
42 | THEME_BUILD_DIR="$(mktemp -d)" | 42 | THEME_BUILD_DIR="$(mktemp -d)" | ||
43 | create_folders "${THEME_BUILD_DIR}" | 43 | create_folders "${THEME_BUILD_DIR}" | ||
44 | cp -R gtk2/* "${THEME_BUILD_DIR}/gtk-2.0/" | 44 | cp -R gtk2/* "${THEME_BUILD_DIR}/gtk-2.0/" | ||
45 | python3 render_assets.py -c "$1" -a "${THEME_BUILD_DIR}/assets" \ | 45 | python3 render_assets.py -c "$1" -a "${THEME_BUILD_DIR}/assets" \ | ||
46 | -g "${THEME_BUILD_DIR}/gtk-2.0" -G "${THEME_BUILD_DIR}" -b "$4" | 46 | -g "${THEME_BUILD_DIR}/gtk-2.0" -G "${THEME_BUILD_DIR}" -b "$4" | ||
47 | build_sass gtk318/gtk.scss "${THEME_BUILD_DIR}/gtk-3.18/gtk.css" "${THEME_BUILD_DIR}" | 47 | build_sass gtk3/gtk.scss "${THEME_BUILD_DIR}/gtk-3.0/gtk.css" "${THEME_BUILD_DIR}" | ||
48 | build_sass gtk320/gtk.scss "${THEME_BUILD_DIR}/gtk-3.20/gtk.css" "${THEME_BUILD_DIR}" | | |||
49 | rm -f "${THEME_BUILD_DIR}/_global.scss" | 48 | rm -f "${THEME_BUILD_DIR}/_global.scss" | ||
50 | install_theme "${THEME_BUILD_DIR}" "$2" "$3" | 49 | install_theme "${THEME_BUILD_DIR}" "$2" "$3" | ||
51 | } | 50 | } | ||
52 | 51 | | |||
53 | COLOR_SCHEME="" | 52 | COLOR_SCHEME="" | ||
54 | INSTALL_TARGET="" | 53 | INSTALL_TARGET="" | ||
55 | THEME_NAME="" | 54 | THEME_NAME="" | ||
56 | COLOR_SCHEME_ROOT="/usr/share/color-schemes" | 55 | COLOR_SCHEME_ROOT="/usr/share/color-schemes" | ||
▲ Show 20 Lines • Show All 55 Lines • Show Last 20 Lines |