mirror of
https://github.com/linux-odyssey/linux-odyssey.git
synced 2026-11-06 03:20:13 +08:00
- Modify the Dockerfile in the `server/quests/helloworld` directory to add a user and change the working directory - Rename the file `server/quests/helloworld/entrypoint.sh` to `server/quests/helloworld/home/.bashrc` - Modify the `server/src/config.js` file to add the `isProduction` flag - Modify the `server/src/utils/docker.js` file to add a `HostConfig` option and bind a directory if not in production mode - Modify the Dockerfile to add an argument `DOCKER_GID` and create a group and user with the specified `DOCKER_GID` - Add a new Dockerfile.dev file with the same modifications as the Dockerfile - Add a new file `inspect.sh` - Modify the `server/src/client.js` file to use the `API_ENDPOINT` variable instead of a hardcoded URL Signed-off-by: wancat <wancat@wancat.cc>
17 lines
597 B
Bash
17 lines
597 B
Bash
# This function will be called before each command is executed
|
|
preexec() {
|
|
[ -n "$COMP_LINE" ] && return # do nothing if completing
|
|
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # do nothing if completing
|
|
local command="$BASH_COMMAND"
|
|
local pwd="$PWD"
|
|
|
|
# Store command in variable
|
|
local cmd=$(printf '{"token": "%s", "pwd": "%s", "command": "%s"}' "$TOKEN" "$pwd" "$command")
|
|
|
|
# Send command to the API
|
|
curl -X POST $API_ENDPOINT/api/v1/commands -H 'accept: */*' -H 'Content-Type: application/json' -d "$cmd"
|
|
}
|
|
|
|
# Install the trap
|
|
trap 'preexec' DEBUG
|