github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/tests/includes/server.sh (about)

     1  start_server() {
     2  	local path
     3  
     4  	path=${1}
     5  
     6  	(
     7  		cd "${path}" || exit 1
     8  		python3 -m http.server 8666 >"${TEST_DIR}/server.log" 2>&1 &
     9  		SERVER_PID=$!
    10  
    11  		echo "${SERVER_PID}" >"${TEST_DIR}/server.pid"
    12  
    13  		# Sleep to ensure the python server is up and running correctly, as it's
    14  		# a daemon service (&) we can't actually see if it's up easily.
    15  		sleep 5
    16  	)
    17  }
    18  
    19  kill_server() {
    20  	if [[ ! -f "${TEST_DIR}/server.pid" ]]; then
    21  		return
    22  	fi
    23  
    24  	pid=$(cat "${TEST_DIR}/server.pid" | head -n 1 || echo "NOT FOUND")
    25  	if [[ ${pid} == "NOT FOUND" ]]; then
    26  		return
    27  	fi
    28  
    29  	echo "==> Killing server"
    30  	kill -9 "${pid}" >/dev/null 2>&1 || true
    31  	echo "==> Killed server (PID is $(green "${pid}"))"
    32  }