setup_repo() { mkdir -p tmp ln -fs ${STAGE_DIR}/RPMS tmp/RPMS ETH0_IP=`ip -4 addr show eth0 scope global | grep 'inet ' | awk '{print $2}' | cut -f1 -d'/'` cat stage-rpms.repo | sed 's/ETH0_IP/'"${ETH0_IP}"'/g' > tmp/stage-rpms.repo if ! iptables -C INPUT -p tcp --dport 62965 -j ACCEPT &> /dev/null; then iptables -A INPUT -p tcp --dport 62965 -j ACCEPT fi python3 -m http.server --bind ${ETH0_IP} 62965 & PY_WS_PID=$! if [ -z "${PY_WS_PID}" ]; then echo "Failed to start repo server" exit 1 fi echo "tdnf repo server started with pid: " ${PY_WS_PID} CTR=30 while true do set +e netstat -an | grep tcp | grep 62965 | grep LISTEN if [ $? -eq 0 ]; then set -e echo "tdnf repo server running with pid: " ${PY_WS_PID} break fi set -e echo "Waiting for $CTR seconds for tdnf repo server to start..." sleep 1 let CTR=$CTR-1 if [ $CTR -eq 0 ]; then echo "Failed to start tdnf repo server. Stopping PID: " ${PY_WS_PID} kill ${PY_WS_PID} exit 1 fi done } function cleanup_repo { echo "Terminating tdnf repo server with pid: " ${PY_WS_PID} kill ${PY_WS_PID} } trap cleanup_repo EXIT