| #!/bin/zsh |
| |
| # Input the path of cpplint here |
| cpplint="$HOME/Documents/cpplint/cpplint.py" |
| |
| cd samples/ || exit 74 # EX_IOERROR |
| |
| # Loop through all .def files in the given directories |
| folders=(${(f)"$(cat)"}) |
| for folder in $folders; do |
| cd "$folder-sample/" || exit 66 # EX_NOINPUT |
| for file in ./*.def; do |
| if [[ ! -s "$file" ]]; then |
| echo "Skipping empty file: $file" |
| continue |
| fi |
| echo "Processing $file..." |
| |
| # Extract the command from the first line of the file |
| cmd=$(head -n 1 "$file") |
| |
| # Create temporary files for stdout and stderr |
| stdout_file=$(mktemp) |
| stderr_file=$(mktemp) |
| |
| # Execute the command and capture stdout and stderr |
| uv run "$cpplint" $cmd > "$stdout_file" 2> "$stderr_file" |
| ret_code=$? |
| |
| # Count the number of lines in stdout |
| (( num_lines=$(wc -l < "$stdout_file") + 1 )) |
| |
| # Overwrite the original definition file |
| { |
| echo "$cmd" |
| echo "$ret_code" |
| echo "$num_lines" |
| cat "$stdout_file" |
| echo |
| cat "$stderr_file" |
| echo |
| } > "$file" |
| |
| # Clean up temporary files |
| rm "$stdout_file" "$stderr_file" |
| done |
| cd .. |
| done |