[Service] ExecStart= ExecStart=/usr/sbin/openvpn --daemon openvpn-%i --config %i.conf --status %i.status 30 --writepid %i.pid {%- if openvpn_option is defined and openvpn_option is not none %} {% for option in openvpn_option %} {# Remove the '--' prefix from variable if it is presented #} {% if option.startswith('--') %} {% set option = option.split('--', maxsplit=1)[1] %} {% endif %} {# Workaround to pass '--push' options properly. Previously openvpn accepted this option without values in double-quotes #} {# But now it stopped doing this, so we need to add them for compatibility #} {# HOWEVER! This is a raw option and we do not promise that this or any other trick will work for all the cases. #} {# Using 'openvpn-option' you take all responsibility for compatibility for yourself. #} {% if option.startswith('push') and not (option.startswith('push "') and option.endswith('"')) %} {% set option = 'push \"%s\"'|format(option.split('push ', maxsplit=1)[1]) %} {% endif %} --{{ option }} {%- endfor %} {% endif %}