forked from zaclys/searxng
Merge pull request #664 from return42/themes.live
[mod] manage: add themes.live command (rebuild on modification)
This commit is contained in:
commit
00d3a7477c
6
Makefile
6
Makefile
@ -25,11 +25,7 @@ help:
|
||||
|
||||
PHONY += run
|
||||
run: install
|
||||
$(Q) ( \
|
||||
sleep 2 ; \
|
||||
xdg-open http://127.0.0.1:8888/ ; \
|
||||
) &
|
||||
SEARXNG_DEBUG=1 ./manage pyenv.cmd python -m searx.webapp
|
||||
$(Q)./manage webapp.run
|
||||
|
||||
PHONY += install uninstall
|
||||
install uninstall:
|
||||
|
@ -13,7 +13,7 @@ Makefile
|
||||
|
||||
To install system requirements follow :ref:`buildhosts`.
|
||||
|
||||
All relevant build tasks are implemented in :origin:`manage.sh` and for CI or
|
||||
All relevant build tasks are implemented in :origin:`manage` and for CI or
|
||||
IDE integration a small ``Makefile`` wrapper is available. If you are not
|
||||
familiar with Makefiles, we recommend to read gnu-make_ introduction.
|
||||
|
||||
@ -173,14 +173,19 @@ Install latest Node.js_ LTS locally (uses nvm_)::
|
||||
|
||||
To get up a running a developer instance simply call ``make run``. This enables
|
||||
*debug* option in :origin:`searx/settings.yml`, starts a ``./searx/webapp.py``
|
||||
instance, disables *debug* option again and opens the URL in your favorite WEB
|
||||
browser (:man:`xdg-open`)::
|
||||
instance and opens the URL in your favorite WEB browser (:man:`xdg-open`)::
|
||||
|
||||
$ make run
|
||||
PYENV OK
|
||||
SEARXNG_DEBUG=1 ./manage.sh pyenv.cmd python ./searx/webapp.py
|
||||
...
|
||||
INFO:werkzeug: * Running on http://127.0.0.1:8888/ (Press CTRL+C to quit)
|
||||
|
||||
Changes to theme's HTML templates (jinja2) are instant. Changes to the CSS & JS
|
||||
sources of the theme need to be rebuild. You can do that by running::
|
||||
|
||||
$ make themes.all
|
||||
|
||||
Alternatively to ``themes.all`` you can run *live builds* of the theme you are
|
||||
modify::
|
||||
|
||||
$ LIVE_THEME=simple make run
|
||||
|
||||
.. _make clean:
|
||||
|
||||
|
@ -40,10 +40,15 @@ JavaScript:
|
||||
|
||||
Alternatively you can also compile selective the theme you have modified,
|
||||
e.g. the *simple* theme.
|
||||
|
||||
.. code:: sh
|
||||
|
||||
make themes.simple
|
||||
|
||||
.. tip::
|
||||
|
||||
To get live builds while modifying CSS & JS use: ``LIVE_THEME=simple make run``
|
||||
|
||||
If you finished your *tests* you can start to commit your changes. To separate
|
||||
the modified source code from the build products first run:
|
||||
|
||||
|
46
manage
46
manage
@ -120,6 +120,17 @@ fi
|
||||
# needed by sphinx-docs
|
||||
export DOCS_BUILD
|
||||
|
||||
webapp.run() {
|
||||
SEARXNG_DEBUG=1 pyenv.cmd python -m searx.webapp &
|
||||
sleep 3
|
||||
if [ "${LIVE_THEME}" ]; then
|
||||
themes.live "${LIVE_THEME}" &
|
||||
fi
|
||||
xdg-open http://127.0.0.1:8888/
|
||||
wait -n
|
||||
kill 0
|
||||
}
|
||||
|
||||
buildenv() {
|
||||
|
||||
# settings file from repository's working tree are used by default
|
||||
@ -514,12 +525,15 @@ gecko.driver() {
|
||||
dump_return $?
|
||||
}
|
||||
|
||||
node.env() {
|
||||
nodejs.ensure() {
|
||||
if ! nvm.min_node "${NODE_MINIMUM_VERSION}"; then
|
||||
info_msg "install Node.js by NVM"
|
||||
nvm.nodejs
|
||||
fi
|
||||
}
|
||||
|
||||
node.env() {
|
||||
nodejs.ensure
|
||||
( set -e
|
||||
|
||||
build_msg INSTALL "searx/static/themes/oscar/package.json"
|
||||
@ -701,6 +715,30 @@ themes.all() {
|
||||
dump_return $?
|
||||
}
|
||||
|
||||
themes.live() {
|
||||
local LIVE_THEME="${LIVE_THEME:-${1}}"
|
||||
case "${LIVE_THEME}" in
|
||||
simple|oscar)
|
||||
theme="searx/static/themes/${LIVE_THEME}"
|
||||
;;
|
||||
'')
|
||||
die_caller 42 "missing theme argument"
|
||||
;;
|
||||
*)
|
||||
die_caller 42 "unknown theme '${LIVE_THEME}' // [simple|oscar]'"
|
||||
;;
|
||||
esac
|
||||
build_msg GRUNT "theme: $1 (live build)"
|
||||
nodejs.ensure
|
||||
cd "${theme}"
|
||||
{
|
||||
npm install
|
||||
npm run watch
|
||||
} 2>&1 \
|
||||
| prefix_stdout "${_Blue}THEME ${1} ${_creset} " \
|
||||
| grep -E --ignore-case --color 'error[s]?[:]? |warning[s]?[:]? |'
|
||||
}
|
||||
|
||||
themes.oscar() {
|
||||
build_msg GRUNT "theme: oscar"
|
||||
npm --prefix searx/static/themes/oscar run build
|
||||
@ -708,7 +746,6 @@ themes.oscar() {
|
||||
}
|
||||
|
||||
themes.simple() {
|
||||
local static="searx/static/themes/simple"
|
||||
( set -e
|
||||
build_msg GRUNT "theme: simple"
|
||||
npm --prefix searx/static/themes/simple run build
|
||||
@ -718,10 +755,7 @@ themes.simple() {
|
||||
|
||||
themes.simple.test() {
|
||||
build_msg TEST "theme: simple"
|
||||
if ! nvm.min_node "${NODE_MINIMUM_VERSION}"; then
|
||||
info_msg "install Node.js by NVM"
|
||||
nvm.nodejs
|
||||
fi
|
||||
nodejs.ensure
|
||||
npm --prefix searx/static/themes/simple install
|
||||
npm --prefix searx/static/themes/simple run test
|
||||
dump_return $?
|
||||
|
Loading…
Reference in New Issue
Block a user