Skip to content

Commit 09ca2e5

Browse files
committed
Add api_connecttion_handler.sh helper to retrodeck-api component recipe
1 parent d1e2f28 commit 09ca2e5

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

retrodeck-api/component_recipe.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@
2525
"type": "dir",
2626
"source": "rd_assets/rd_tools",
2727
"dest": "rd_tools"
28+
},
29+
{
30+
"type": "file",
31+
"source": "rd_assets/rd_libexec/api_connection_handler.sh",
32+
"dest": "libexec"
2833
}
2934
]
3035
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#!/bin/bash
2+
3+
# RetroDECK API Connection Handler
4+
# This script is executed by socat for each incoming client connection.
5+
6+
# Source the function libraries to load all function definitions
7+
for file in /app/libexec/*.sh; do
8+
case "$(basename "$file")" in
9+
cleanup.sh|cli.sh|global.sh|launcher_functions.sh|run_game.sh|zenity_processing.sh) continue ;;
10+
esac
11+
log d "Sourcing $file for API session"
12+
source "$file"
13+
done
14+
15+
# Read JSON request line from the client
16+
if ! IFS= read -r -t "${api_timeout:-30}" request; then
17+
echo '{"status":"error","request_id":"unknown","message":"No request received or connection timed out"}'
18+
exit 1
19+
fi
20+
21+
# Handle the request
22+
api_handle_request "$request"

0 commit comments

Comments
 (0)