Rdzleo dbdd304905 代码初始化:
本项目为触摸版项目代码复制而来,基于此版本进行按键功能的适配!
2026-03-23 11:14:56 +08:00

63 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Get the 'name' field from all sdkconfig.board.name files in the specified directory
# Usage: ./get_boards_name.sh [directory] [format]
# Format options:
# - space: space-separated (default)
# - newline: newline-separated
# - json: JSON array format
# - bash: Bash array format
# Set default directory and format
DIR="${1:-.}"
FORMAT="${2:-space}"
# Check if directory exists
if [ ! -d "$DIR" ]; then
echo "Error: Directory '$DIR' does not exist" >&2
exit 1
fi
# Find all sdkconfig.board.* files and extract names
board_names=()
while IFS= read -r -d '' file; do
# Extract board name from filename
# Filename format: sdkconfig.board.{name}
filename=$(basename "$file")
if [[ $filename =~ ^sdkconfig\.ci\.board\.(.+)$ ]]; then
board_name="${BASH_REMATCH[1]}"
board_names+=("$board_name")
fi
done < <(find "$DIR" -maxdepth 1 -name "sdkconfig.ci.board.*" -type f -print0)
# Check if any board configuration files were found
if [ ${#board_names[@]} -eq 0 ]; then
echo "Warning: No sdkconfig.ci.board.* files found in directory '$DIR'" >&2
exit 0
fi
# Output results based on specified format
case "$FORMAT" in
"space")
# Space-separated format
echo "${board_names[*]}"
;;
"newline")
# Newline-separated format
printf '%s\n' "${board_names[@]}"
;;
"json")
# JSON array format
printf '['; printf '"%s"' "${board_names[0]}"; printf ', "%s"' "${board_names[@]:1}"; printf ']\n'
;;
"bash")
# Bash array format
echo "(${board_names[*]})"
;;
*)
echo "Error: Unsupported format '$FORMAT'" >&2
echo "Supported formats: space, newline, json, bash" >&2
exit 1
;;
esac