mirror of
https://github.com/searxng/searxng.git
synced 2024-11-04 20:30:11 +01:00
handle input carefully in shell scripts
- prevent whitespace-splitting of variable expansions - prevent interpretation of values as flags/options (mostly)
This commit is contained in:
parent
2790402060
commit
076cfe25d7
36
manage.sh
36
manage.sh
@ -1,11 +1,11 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
BASE_DIR=$(dirname "`readlink -f "$0"`")
|
BASE_DIR="$(dirname -- "`readlink -f -- "$0"`")"
|
||||||
PYTHONPATH=$BASE_DIR
|
PYTHONPATH="$BASE_DIR"
|
||||||
SEARX_DIR="$BASE_DIR/searx"
|
SEARX_DIR="$BASE_DIR/searx"
|
||||||
ACTION=$1
|
ACTION="$1"
|
||||||
|
|
||||||
cd "$BASE_DIR"
|
cd -- "$BASE_DIR"
|
||||||
|
|
||||||
update_packages() {
|
update_packages() {
|
||||||
pip install --upgrade pip
|
pip install --upgrade pip
|
||||||
@ -24,12 +24,12 @@ install_geckodriver() {
|
|||||||
set -e
|
set -e
|
||||||
geckodriver -V > /dev/null 2>&1 || NOTFOUND=1
|
geckodriver -V > /dev/null 2>&1 || NOTFOUND=1
|
||||||
set +e
|
set +e
|
||||||
if [ -z $NOTFOUND ]; then
|
if [ -z "$NOTFOUND" ]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
GECKODRIVER_VERSION="v0.18.0"
|
GECKODRIVER_VERSION="v0.18.0"
|
||||||
PLATFORM=`python -c "import six; import platform; six.print_(platform.system().lower(), platform.architecture()[0])"`
|
PLATFORM="`python -c "import six; import platform; six.print_(platform.system().lower(), platform.architecture()[0])"`"
|
||||||
case $PLATFORM in
|
case "$PLATFORM" in
|
||||||
"linux 32bit" | "linux2 32bit") ARCH="linux32";;
|
"linux 32bit" | "linux2 32bit") ARCH="linux32";;
|
||||||
"linux 64bit" | "linux2 64bit") ARCH="linux64";;
|
"linux 64bit" | "linux2 64bit") ARCH="linux64";;
|
||||||
"windows 32 bit") ARCH="win32";;
|
"windows 32 bit") ARCH="win32";;
|
||||||
@ -47,15 +47,15 @@ install_geckodriver() {
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
GECKODRIVER_DIR="$1"
|
GECKODRIVER_DIR="$1"
|
||||||
mkdir -p "$GECKODRIVER_DIR"
|
mkdir -p -- "$GECKODRIVER_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Installing $GECKODRIVER_DIR/geckodriver from\n $GECKODRIVER_URL"
|
echo "Installing $GECKODRIVER_DIR/geckodriver from\n $GECKODRIVER_URL"
|
||||||
|
|
||||||
FILE=`mktemp`
|
FILE="`mktemp`"
|
||||||
wget "$GECKODRIVER_URL" -qO $FILE && tar xz -C "$GECKODRIVER_DIR" -f $FILE geckodriver
|
wget -qO "$FILE" -- "$GECKODRIVER_URL" && tar xz -C "$GECKODRIVER_DIR" -f "$FILE" geckodriver
|
||||||
rm $FILE
|
rm -- "$FILE"
|
||||||
chmod 777 "$GECKODRIVER_DIR/geckodriver"
|
chmod 777 -- "$GECKODRIVER_DIR/geckodriver"
|
||||||
}
|
}
|
||||||
|
|
||||||
pep8_check() {
|
pep8_check() {
|
||||||
@ -73,14 +73,14 @@ unit_tests() {
|
|||||||
|
|
||||||
py_test_coverage() {
|
py_test_coverage() {
|
||||||
echo '[!] Running python test coverage'
|
echo '[!] Running python test coverage'
|
||||||
PYTHONPATH=`pwd` python -m nose2 -C --log-capture --with-coverage --coverage "$SEARX_DIR" -s "$BASE_DIR/tests/unit" \
|
PYTHONPATH="`pwd`" python -m nose2 -C --log-capture --with-coverage --coverage "$SEARX_DIR" -s "$BASE_DIR/tests/unit" \
|
||||||
&& coverage report \
|
&& coverage report \
|
||||||
&& coverage html
|
&& coverage html
|
||||||
}
|
}
|
||||||
|
|
||||||
robot_tests() {
|
robot_tests() {
|
||||||
echo '[!] Running robot tests'
|
echo '[!] Running robot tests'
|
||||||
PYTHONPATH=`pwd` python "$SEARX_DIR/testing.py" robot
|
PYTHONPATH="`pwd`" python "$SEARX_DIR/testing.py" robot
|
||||||
}
|
}
|
||||||
|
|
||||||
tests() {
|
tests() {
|
||||||
@ -113,11 +113,11 @@ styles() {
|
|||||||
|
|
||||||
npm_packages() {
|
npm_packages() {
|
||||||
echo '[!] install NPM packages for oscar theme'
|
echo '[!] install NPM packages for oscar theme'
|
||||||
cd $BASE_DIR/searx/static/themes/oscar
|
cd -- "$BASE_DIR/searx/static/themes/oscar"
|
||||||
npm install
|
npm install
|
||||||
|
|
||||||
echo '[!] install NPM packages for simple theme'
|
echo '[!] install NPM packages for simple theme'
|
||||||
cd $BASE_DIR/searx/static/themes/simple
|
cd -- "$BASE_DIR/searx/static/themes/simple"
|
||||||
npm install
|
npm install
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,7 +133,7 @@ locales() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
[ -z "$1" ] || printf "Error: $1\n"
|
[ -z "$1" ] || printf 'Error: %s\n' "$1"
|
||||||
echo "Searx manage.sh help
|
echo "Searx manage.sh help
|
||||||
|
|
||||||
Commands
|
Commands
|
||||||
@ -156,4 +156,4 @@ Commands
|
|||||||
|
|
||||||
[ "$(command -V "$ACTION" | grep ' function$')" = "" ] \
|
[ "$(command -V "$ACTION" | grep ' function$')" = "" ] \
|
||||||
&& help "action not found" \
|
&& help "action not found" \
|
||||||
|| $ACTION "$2"
|
|| "$ACTION" "$2"
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
|
|
||||||
SEARX_DIR='searx'
|
SEARX_DIR='searx'
|
||||||
|
|
||||||
pybabel extract -F babel.cfg -o messages.pot $SEARX_DIR
|
pybabel extract -F babel.cfg -o messages.pot "$SEARX_DIR"
|
||||||
for f in `ls $SEARX_DIR'/translations/'`; do
|
for f in `ls "$SEARX_DIR"'/translations/'`; do
|
||||||
pybabel update -N -i messages.pot -d $SEARX_DIR'/translations/' -l $f
|
pybabel update -N -i messages.pot -d "$SEARX_DIR"'/translations/' -l "$f"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo '[!] update done, edit .po files if required and run pybabel compile -d searx/translations/'
|
echo '[!] update done, edit .po files if required and run pybabel compile -d searx/translations/'
|
||||||
|
Loading…
Reference in New Issue
Block a user