Mercurial > kallithea
view init.d/kallithea-daemon-debian @ 7647:4babc6e047d0 stable
templates/files: narrow down scope of webhelpers.html.literal
In the 'Show Authors' functionality on a file of a repository, the following
construct:
h.literal(ungettext('..A..') % (..B..))
can be simplified. Here, literal was used to cater for explicit HTML tags in
the (..B..) part only. There is no need to apply literal on the '..A..'
part.
A better structure of this code is:
h.HTML(ungettext('..A..')) % h.literal(..B..)
Note that we still need to wrap the '..A..' part in webhelpers.html.HTML to
make sure the '%' operator will preserve the 'literal' property.
See also the documentation: (the text below for 'literal' also applies to
'HTML')
https://docs.pylonsproject.org/projects/webhelpers/en/latest/modules/html/builder.html
"
When literal is used in a mixed expression containing both literals and
ordinary strings, it tries hard to escape the strings and return a
literal. However, this depends on which value has “control” of the
expression. literal seems to be able to take control with all
combinations of the + operator, but with % and join it must be on the
left side of the expression. So these all work:
"A" + literal("B")
literal(", ").join(["A", literal("B")])
literal("%s %s") % (16, literal("kg"))
But these return an ordinary string which is prone to double-escaping later:
"\n".join([literal('<span class="foo">Foo!</span>'), literal('Bar!')])
"%s %s" % (literal("16"), literal("<em>kg</em>"))
"
author | Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> |
---|---|
date | Mon, 29 Apr 2019 21:46:44 +0200 |
parents | 2c3d30095d5e |
children | 71bdbf129190 |
line wrap: on
line source
#!/bin/sh -e ######################################## #### THIS IS A DEBIAN INIT.D SCRIPT #### ######################################## ### BEGIN INIT INFO # Provides: kallithea # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: starts instance of kallithea # Description: starts instance of kallithea using start-stop-daemon ### END INIT INFO APP_NAME="kallithea" APP_HOMEDIR="opt" APP_PATH="/$APP_HOMEDIR/$APP_NAME" CONF_NAME="production.ini" PID_PATH="$APP_PATH/$APP_NAME.pid" LOG_PATH="$APP_PATH/$APP_NAME.log" PYTHON_PATH="/$APP_HOMEDIR/$APP_NAME-venv" RUN_AS="root" DAEMON="$PYTHON_PATH/bin/gearbox" DAEMON_OPTS="serve --daemon \ --user=$RUN_AS \ --group=$RUN_AS \ --pid-file=$PID_PATH \ --log-file=$LOG_PATH -c $APP_PATH/$CONF_NAME" start() { echo "Starting $APP_NAME" PYTHON_EGG_CACHE="/tmp" start-stop-daemon -d $APP_PATH \ --start --quiet \ --pidfile $PID_PATH \ --user $RUN_AS \ --exec $DAEMON -- $DAEMON_OPTS } stop() { echo "Stopping $APP_NAME" start-stop-daemon -d $APP_PATH \ --stop --quiet \ --pidfile $PID_PATH || echo "$APP_NAME - Not running!" if [ -f $PID_PATH ]; then rm $PID_PATH fi } status() { echo -n "Checking status of $APP_NAME ... " pid=`cat $PID_PATH` status=`ps ax | grep $pid | grep -ve grep` if [ "$?" -eq 0 ]; then echo "running" else echo "NOT running" fi } case "$1" in status) status ;; start) start ;; stop) stop ;; restart) echo "Restarting $APP_NAME" ### stop ### stop wait ### start ### start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac