|  | #!/usr/bin/env bash
 | 
						
						
						
							|  | # SPDX-License-Identifier: AGPL-3.0-or-later
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | declare _Blue
 | 
						
						
						
							|  | declare _creset
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.help(){
 | 
						
						
						
							|  |     cat <<EOF
 | 
						
						
						
							|  | themes.:
 | 
						
						
						
							|  |   all       : test & build all themes
 | 
						
						
						
							|  |   test      : test all themes
 | 
						
						
						
							|  |   fix       : fix JS & CSS (LESS)
 | 
						
						
						
							|  |   live      : to get live builds of CSS & JS use: LIVE_THEME=simple make run
 | 
						
						
						
							|  |   simple.:    test & build simple theme ..
 | 
						
						
						
							|  |     pygments: build pygment's LESS files for simple theme
 | 
						
						
						
							|  |     test    : test simple theme
 | 
						
						
						
							|  |     fix     : fix JS & CSS (LESS) of the simple theme
 | 
						
						
						
							|  | EOF
 | 
						
						
						
							|  | }
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.all() {
 | 
						
						
						
							|  |     (   set -e
 | 
						
						
						
							|  | 	node.env
 | 
						
						
						
							|  |         themes.simple
 | 
						
						
						
							|  |     )
 | 
						
						
						
							|  |     dump_return $?
 | 
						
						
						
							|  | }
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.fix() {
 | 
						
						
						
							|  |     (   set -e
 | 
						
						
						
							|  | 	node.env
 | 
						
						
						
							|  |         themes.simple.fix
 | 
						
						
						
							|  |     )
 | 
						
						
						
							|  |     dump_return $?
 | 
						
						
						
							|  | }
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.test() {
 | 
						
						
						
							|  |     (   set -e
 | 
						
						
						
							|  | 	node.env
 | 
						
						
						
							|  |         themes.simple.test
 | 
						
						
						
							|  |     )
 | 
						
						
						
							|  |     dump_return $?
 | 
						
						
						
							|  | }
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.live() {
 | 
						
						
						
							|  |     local LIVE_THEME="${LIVE_THEME:-${1}}"
 | 
						
						
						
							|  |     case "${LIVE_THEME}" in
 | 
						
						
						
							|  |         simple)
 | 
						
						
						
							|  |             theme="searx/static/themes/${LIVE_THEME}"
 | 
						
						
						
							|  |             ;;
 | 
						
						
						
							|  |         '')
 | 
						
						
						
							|  |             die 42 "missing theme argument"
 | 
						
						
						
							|  |             ;;
 | 
						
						
						
							|  |         *)
 | 
						
						
						
							|  |             die 42 "unknown theme '${LIVE_THEME}' // [simple]'"
 | 
						
						
						
							|  |             ;;
 | 
						
						
						
							|  |     esac
 | 
						
						
						
							|  |     build_msg SIMPLE "theme: $1 (live build)"
 | 
						
						
						
							|  |     node.env
 | 
						
						
						
							|  |     themes.simple.pygments
 | 
						
						
						
							|  |     cd "${theme}"
 | 
						
						
						
							|  |     {
 | 
						
						
						
							|  |         npm run watch
 | 
						
						
						
							|  |     } # 2>&1 \
 | 
						
						
						
							|  |       #       | prefix_stdout "${_Blue}THEME ${1} ${_creset}  " \
 | 
						
						
						
							|  |       #       | grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |'
 | 
						
						
						
							|  | }
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.simple() {
 | 
						
						
						
							|  |     (   set -e
 | 
						
						
						
							|  | 	themes.simple.pygments
 | 
						
						
						
							|  | 	build_msg SIMPLE "theme: run build"
 | 
						
						
						
							|  | 	# "run build" includes tests from eslint and stylelint
 | 
						
						
						
							|  | 	npm --prefix searx/static/themes/simple run build
 | 
						
						
						
							|  |     )
 | 
						
						
						
							|  |     dump_return $?
 | 
						
						
						
							|  | }
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.simple.pygments() {
 | 
						
						
						
							|  |     build_msg PYGMENTS "searxng_extra/update/update_pygments.py"
 | 
						
						
						
							|  |     pyenv.cmd python searxng_extra/update/update_pygments.py \
 | 
						
						
						
							|  | 	| prefix_stdout "${_Blue}PYGMENTS ${_creset} "
 | 
						
						
						
							|  |     if [ "${PIPESTATUS[0]}" -ne "0" ]; then
 | 
						
						
						
							|  |         build_msg PYGMENTS "building LESS files for pygments failed"
 | 
						
						
						
							|  |         return 1
 | 
						
						
						
							|  |     fi
 | 
						
						
						
							|  |     return 0
 | 
						
						
						
							|  | }
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.simple.fix() {
 | 
						
						
						
							|  |     build_msg SIMPLE "theme: fix"
 | 
						
						
						
							|  |     npm --prefix searx/static/themes/simple run fix
 | 
						
						
						
							|  |     dump_return $?
 | 
						
						
						
							|  | }
 | 
						
						
						
							|  | 
 | 
						
						
						
							|  | themes.simple.test() {
 | 
						
						
						
							|  |     build_msg SIMPLE "theme: run test"
 | 
						
						
						
							|  |     npm --prefix searx/static/themes/simple run test
 | 
						
						
						
							|  |     dump_return $?
 | 
						
						
						
							|  | }
 |