@@ -13,15 +13,22 @@ WORK_DIR="${WORKSPACE_ROOT_DIR:-$(pwd)}"
13
13
# Default allowed domains - can be overridden with OPENAI_ALLOWED_DOMAINS env var
14
14
OPENAI_ALLOWED_DOMAINS=" ${OPENAI_ALLOWED_DOMAINS:- api.openai.com} "
15
15
16
- # Parse optional flag.
17
- if [ " $1 " = " --work_dir" ]; then
18
- if [ -z " $2 " ]; then
19
- echo " Error: --work_dir flag provided but no directory specified."
20
- exit 1
21
- fi
22
- WORK_DIR=" $2 "
23
- shift 2
24
- fi
16
+ # Default config path - can be overridden with CONFIG_PATH env var
17
+ CONFIG_PATH=" ${CONFIG_PATH:- $HOME / .codex} "
18
+ VOLUME_FLAGS=()
19
+ EXTRA_CODEX_ARGS=()
20
+
21
+ # Parse flags: --work_dir DIR, --config DIR & any extra arguments
22
+ while [[ $# -gt 0 ]]; do
23
+ case " $1 " in
24
+ --work-dir)
25
+ WORK_DIR=" $2 " ; shift 2 ;;
26
+ --config)
27
+ CONFIG_PATH=" $2 " ; shift 2 ;;
28
+ * )
29
+ EXTRA_CODEX_ARGS+=(" $1 " ); shift ;;
30
+ esac
31
+ done
25
32
26
33
WORK_DIR=$( realpath " $WORK_DIR " )
27
34
@@ -36,8 +43,8 @@ cleanup() {
36
43
trap cleanup EXIT
37
44
38
45
# Ensure a command is provided.
39
- if [ " $# " -eq 0 ]; then
40
- echo " Usage: $0 [--work_dir directory] \" COMMAND\" "
46
+ if [ ${ # EXTRA_CODEX_ARGS[@]} -eq 0 ]; then
47
+ echo " Usage: $0 [--work-dir directory] \" COMMAND\" "
41
48
exit 1
42
49
fi
43
50
@@ -53,6 +60,11 @@ if [ -z "$OPENAI_ALLOWED_DOMAINS" ]; then
53
60
exit 1
54
61
fi
55
62
63
+ # check if the config directory exists
64
+ if [[ -e " $CONFIG_PATH " ]]; then
65
+ VOLUME_FLAGS+=(" -v" " $CONFIG_PATH :/home/node/.codex:ro" )
66
+ fi
67
+
56
68
# Kill any existing container for the working directory using cleanup(), centralizing removal logic.
57
69
cleanup
58
70
@@ -62,6 +74,7 @@ docker run --name "$CONTAINER_NAME" -d \
62
74
--cap-add=NET_ADMIN \
63
75
--cap-add=NET_RAW \
64
76
-v " $WORK_DIR :/app$WORK_DIR " \
77
+ " ${VOLUME_FLAGS[@]} " \
65
78
codex \
66
79
sleep infinity
67
80
@@ -89,7 +102,9 @@ docker exec --user root "$CONTAINER_NAME" bash -c "rm -f /usr/local/bin/init_fir
89
102
# We use a parameterized bash command to safely handle the command and directory.
90
103
91
104
quoted_args=" "
92
- for arg in " $@ " ; do
105
+ for arg in " ${EXTRA_CODEX_ARGS[@]} " ; do
93
106
quoted_args+=" $( printf ' %q' " $arg " ) "
94
107
done
95
- docker exec -it " $CONTAINER_NAME " bash -c " cd \" /app$WORK_DIR \" && codex --full-auto ${quoted_args} "
108
+
109
+ docker exec -it " $CONTAINER_NAME " bash -c \
110
+ " cd \" /app$WORK_DIR \" && codex ${quoted_args} "
0 commit comments