@@ -25,14 +25,15 @@ mkdir -p "$TUTORIALS_DIR"
25
25
# Find all tutorial.md files
26
26
TUTORIAL_FILES=$( find " $PASSPORT_ROOT " -name " tutorial.md" -type f)
27
27
28
- for TUTORIAL_FILE in $TUTORIAL_FILES ; do
28
+ # Process null-delimited filenames
29
+ find " $PASSPORT_ROOT " -name " tutorial.md" -type f -print0 | while IFS= read -r -d ' ' TUTORIAL_FILE; do
29
30
echo " Processing $TUTORIAL_FILE "
30
31
31
32
# Extract feature directory
32
33
FEATURE_DIR=$( dirname " $TUTORIAL_FILE " )
33
34
34
35
# Try to find script file in this directory
35
- SCRIPT_FILE=$( find " $FEATURE_DIR " -name " *.cs" -type f | head -n 1)
36
+ SCRIPT_FILE=$( find " $FEATURE_DIR " -name " *.cs" -type f -print0 | xargs -0 -n1 echo | head -n 1)
36
37
if [ -z " $SCRIPT_FILE " ]; then
37
38
echo " Warning: No script file found in $FEATURE_DIR , using directory name"
38
39
FEATURE_NAME=$( basename " $FEATURE_DIR " )
@@ -41,7 +42,11 @@ for TUTORIAL_FILE in $TUTORIAL_FILES; do
41
42
SCRIPT_FILENAME=$( basename " $SCRIPT_FILE " )
42
43
43
44
# Look up the feature name in features.json
44
- FEATURE_NAME=$( jq -r " .features[] | to_entries[] | select(.value == \" $SCRIPT_FILENAME \" ) | .key" " $FEATURES_JSON " )
45
+ # Extract feature name with error handling
46
+ if ! FEATURE_NAME=$( jq -r " .features[] | to_entries[] | select(.value == \" $SCRIPT_FILENAME \" ) | .key" " $FEATURES_JSON " 2> /dev/null) ; then
47
+ echo " Warning: Error parsing features.json with jq, using directory name"
48
+ FEATURE_NAME=$( basename " $FEATURE_DIR " )
49
+ fi
45
50
46
51
# If not found in features.json, fallback to directory name
47
52
if [ -z " $FEATURE_NAME " ] || [ " $FEATURE_NAME " == " null" ]; then
0 commit comments