From b163c68bf9275f4e86fd30e28537d9baf246fab3 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Wed, 26 Mar 2025 15:40:41 +0100 Subject: [PATCH] backend: restore missing Python module PR: https://forum.opnsense.org/index.php?topic=46556.0 --- plist | 1 + src/opnsense/site-python/params.py | 46 ++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 src/opnsense/site-python/params.py diff --git a/plist b/plist index 2dcea5104..c080244f8 100644 --- a/plist +++ b/plist @@ -1472,6 +1472,7 @@ /usr/local/opnsense/site-python/daemonize.py /usr/local/opnsense/site-python/duckdb_helper.py /usr/local/opnsense/site-python/log_helper.py +/usr/local/opnsense/site-python/params.py /usr/local/opnsense/site-python/sqlite3_helper.py /usr/local/opnsense/site-python/tls_helper.py /usr/local/opnsense/site-python/watchers/__init__.py diff --git a/src/opnsense/site-python/params.py b/src/opnsense/site-python/params.py new file mode 100644 index 000000000..18c49fb9f --- /dev/null +++ b/src/opnsense/site-python/params.py @@ -0,0 +1,46 @@ +""" + Copyright (c) 2015-2016 Ad Schellevis + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +""" + +import sys + + +def update_params(parameters): + """ update predefined parameters with given list from shell (as switches) + for example /a valA /b valB + converts to + {'a':'valA','b':'valB'} + (assuming parameters contains both a and b) + :param parameters: parameter dictionary + :return: + """ + cmd = None + for arg in sys.argv[1:]: + if cmd is None: + cmd = arg[1:] + else: + if cmd in parameters and arg.strip() != '': + parameters[cmd] = arg.strip() + cmd = None