diff --git a/octoprint_tailscale_funnel/setup.py b/octoprint_tailscale_funnel/setup.py index 20f7801..0ef0b88 100644 --- a/octoprint_tailscale_funnel/setup.py +++ b/octoprint_tailscale_funnel/setup.py @@ -88,7 +88,18 @@ setup_parameters = octoprint_setuptools.create_plugin_setup_parameters( ) if len(additional_setup_parameters): - from octoprint.util import dict_merge + try: + from octoprint.util import dict_merge + except Exception: + # Fallback to allow building without the octoprint package installed + def dict_merge(a, b): + result = dict(a) + for k, v in b.items(): + if k in result and isinstance(result[k], dict) and isinstance(v, dict): + result[k] = dict_merge(result[k], v) + else: + result[k] = v + return result setup_parameters = dict_merge(setup_parameters, additional_setup_parameters) setup(**setup_parameters) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a8cfc1f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +setuptools>=68 +wheel>=0.41 +build>=1.0 +packaging>=23 +octoprint_setuptools>=1.7.0 + diff --git a/scripts/build_plugin.sh b/scripts/build_plugin.sh index 14acf18..7d1e90f 100755 --- a/scripts/build_plugin.sh +++ b/scripts/build_plugin.sh @@ -23,7 +23,12 @@ if [[ ! -x "$VENV_DIR/bin/python" ]]; then python3 -m venv "$VENV_DIR" fi -"$VENV_DIR/bin/pip" install -q --upgrade pip setuptools wheel build packaging octoprint_setuptools +if [[ -f "$ROOT_DIR/requirements.txt" ]]; then + "$VENV_DIR/bin/pip" install -q --upgrade pip + "$VENV_DIR/bin/pip" install -q -r "$ROOT_DIR/requirements.txt" +else + "$VENV_DIR/bin/pip" install -q --upgrade pip setuptools wheel build packaging octoprint_setuptools +fi # Optional: bump version if [[ -n "$VERSION_INPUT" ]]; then