From d4fa6e34e26ad8fdc1354c4041be9c2165f1bcdc Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 5 Sep 2025 18:20:08 +0200 Subject: [PATCH] fix(deps): add comprehensive SSL dependency check and unify error messages - Add SSL/TLS library validation before startup - Unify all dependency error messages with install instructions - Provide platform-specific package names for all dependencies - Prevents silent SMTP SSL failures at runtime Fixes #109 --- scripts/start.sh | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/scripts/start.sh b/scripts/start.sh index 07a0df8..4ad5591 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1,5 +1,5 @@ #!/bin/sh -# furt-lua/scripts/start.sh - Bereinigt ohne obsoletes Environment-System +# scripts/start.sh set -e # Colors @@ -16,7 +16,7 @@ echo -e "${GREEN}=== Furt Lua HTTP-Server Startup ===${NC}" # User can override this manually if needed: LUA_COMMAND="" -# Config check first (like old .env check) +# Config check first if [ "$(uname)" = "OpenBSD" ] || [ "$(uname)" = "FreeBSD" ]; then CONFIG_FILE="/usr/local/etc/furt/furt.conf" else @@ -45,7 +45,6 @@ if [ -z "$LUA_COMMAND" ]; then echo " Arch: pacman -S lua51" echo " OpenBSD: pkg_add lua51" echo " Debian: apt install lua5.1" - echo " FreeBSD: pkg install lua51" echo "" echo "Or set: LUA_COMMAND=/custom/path/lua51 at top of this script" exit 1 @@ -53,19 +52,37 @@ fi echo -e "${GREEN}Found Lua:${NC} $LUA_COMMAND" -# Dependency checks (lua-socket, lua-cjson) +# Dependency checks +# Socket check $LUA_COMMAND -e "require('socket')" 2>/dev/null || { echo -e "${RED}Error: lua-socket not found${NC}" + echo "Install options:" + echo " Arch: pacman -S lua51-socket" + echo " OpenBSD: pkg_add lua-socket" + echo " Debian: apt install lua-socket" exit 1 } -# JSON library check (cjson preferred, dkjson fallback) +# JSON library check if ! ($LUA_COMMAND -e "require('cjson')" 2>/dev/null || $LUA_COMMAND -e "require('dkjson')" 2>/dev/null); then echo -e "${RED}Error: No JSON library found${NC}" - echo "Install lua-cjson or lua-dkjson" + echo "Install options:" + echo " Arch: pacman -S lua51-dkjson" + echo " OpenBSD: pkg_add lua-cjson" + echo " Debian: apt install lua-cjson" exit 1 fi +# SSL/TLS library check +$LUA_COMMAND -e "require('ssl')" 2>/dev/null || { + echo -e "${RED}Error: SSL/TLS library not found${NC}" + echo "Install options:" + echo " Arch: pacman -S lua51-sec" + echo " OpenBSD: pkg_add luasec" + echo " Debian: apt install lua-sec" + exit 1 +} + cd "$PROJECT_DIR" echo -e "${GREEN}Starting Furt...${NC}" @@ -75,10 +92,7 @@ if [ ! -t 0 ] || [ ! -t 1 ]; then # Service mode - Background "$LUA_COMMAND" src/main.lua & else - # Interactive mode - Foreground + # Interactive mode - Foreground exec "$LUA_COMMAND" src/main.lua fi -# Furt liest selbst seine Config aus furt.conf -#exec "$LUA_COMMAND" src/main.lua -