[U-Boot] [RFC PATCH 1/5] scripts: add script for converting boards.cfg to MAINTAINERS

Daniel Schwierzeck daniel.schwierzeck at gmail.com
Sun Apr 20 22:57:30 CEST 2014


Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
---

 scripts/boardscfg2maintainers.sh | 259 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 259 insertions(+)
 create mode 100755 scripts/boardscfg2maintainers.sh

diff --git a/scripts/boardscfg2maintainers.sh b/scripts/boardscfg2maintainers.sh
new file mode 100755
index 0000000..27f7387
--- /dev/null
+++ b/scripts/boardscfg2maintainers.sh
@@ -0,0 +1,259 @@
+#!/bin/bash
+
+set -e
+
+test -e boards.cfg
+
+# architectures, which are maintained in a custodian tree
+git_arch=(
+aarch64
+arm
+avr32
+blackfin
+m68k
+microblaze
+mips
+nds32
+nios
+sh
+sparc
+x86
+)
+
+# CPUs, which are maintained in a custodian tree
+git_cpu=(
+74xx_7xx
+mpc5xxx
+mpc824x
+mpc8260
+mpc82xx
+mpc83xx
+mpc85xx
+mpc86xx
+mpc8xx
+ppc4xx
+pxa
+)
+
+# SOCs, which are maintained in a custodian tree
+git_soc=(
+at91
+exynos
+imx
+kirkwood
+mx25
+mx27
+mx31
+mx35
+mx5
+mx6
+mxs
+omap3
+omap4
+omap5
+s3c24x0
+samsung
+spear
+tegra114
+tegra124
+tegra20
+tegra30
+)
+
+# check whether the given arch has a custodian tree
+has_arch_gittree()
+{
+	local arch=$1
+
+	for val in ${git_arch[@]}; do
+		[ "$val" = "$arch" ] && return 0
+	done
+
+	return 1
+}
+
+# check whether the given CPU has a custodian tree
+has_cpu_gittree()
+{
+	local cpu=$1
+
+	for val in ${git_cpu[@]}; do
+		[ "$val" = "$cpu" ] && return 0
+	done
+
+	return 1
+}
+
+# check whether the given SOC has a custodian tree
+has_soc_gittree()
+{
+	local soc=$1
+
+	for val in ${git_soc[@]}; do
+		[ "$val" = "$soc" ] && return 0
+	done
+
+	return 1
+}
+
+# translate given architecture to Git URL of custodian tree
+get_arch_gittree()
+{
+	local arch=$1
+	local arch_git
+
+	case $arch in
+	aarch64)
+		arch_git=arm
+		;;
+	m68k)
+		arch_git=coldfire
+		;;
+	*)
+		arch_git=$arch
+		;;
+	esac
+
+	echo git://git.denx.de/u-boot-$arch_git.git
+}
+
+# translate given CPU to Git URL of custodian tree
+get_cpu_gittree()
+{
+	local cpu=$1
+	local cpu_git
+
+	case $cpu in
+	74xx_7xx)
+		cpu_git=74xx-7xx
+		;;
+	mpc824x|mpc8260)
+		cpu_git=mpc82xx
+		;;
+	*)
+		cpu_git=$cpu
+		;;
+	esac
+
+	echo git://git.denx.de/u-boot-$cpu_git.git
+}
+
+# translate given SOC to Git URL of custodian tree
+get_soc_gittree()
+{
+	local soc=$1
+	local soc_git
+
+	case $soc in
+	at91)
+		soc_git=atmel
+		;;
+	exynos|s3c24x0)
+		soc_git=samsung
+		;;
+	kirkwood)
+		soc_git=marvell
+		;;
+	mx25|mx27|mx31|mx35|mx5|mx6|mxs)
+		soc_git=imx
+		;;
+	omap3|omap4|omap5)
+		soc_git=ti
+		;;
+	spear)
+		soc_git=stm
+		;;
+	tegra114|tegra124|tegra20|tegra30)
+		soc_git=tegra
+		;;
+	*)
+		soc_git=$soc
+		;;
+	esac
+
+	echo git://git.denx.de/u-boot-$soc_git.git
+}
+
+echo -n > MAINTAINERS.boards
+echo -n > boards.cfg.tmp
+
+# pre-process, minimize and sort boards.cfg
+while read -r status arch cpu soc vendor board target options maintainers; do
+	case $status in
+	Active)
+		status="Maintained"
+		;;
+	Orphan)
+		;;
+	*)
+		continue
+		;;
+	esac
+
+	options_target=$(echo $options | awk 'BEGIN {FS=":"}; { print $1 }')
+
+	if [ "$options_target" != "-" ]; then
+		board=$options_target
+	elif [ "$target" != "-" ]; then
+		board=$target
+	else
+		board=$board
+	fi
+
+	if has_soc_gittree $soc; then
+		gittree=$(get_soc_gittree $soc)
+	elif has_cpu_gittree $cpu; then
+		gittree=$(get_cpu_gittree $cpu)
+	elif has_arch_gittree $arch; then
+		gittree=$(get_arch_gittree $arch)
+	else
+		gittree="-"
+	fi
+
+	echo "$status $board $vendor $gittree $maintainers" >> boards.cfg.tmp
+done < boards.cfg
+
+sort -u boards.cfg.tmp > boards.cfg.sorted
+
+# create MAINTAINERS.boards from pre-processed boards.cfg
+while read -r status board vendor gittree maintainers; do
+	if [ "$vendor" = "-" ]; then
+		echo "BOARD $board" >> MAINTAINERS.boards
+	else
+		echo "BOARD $board $vendor" >> MAINTAINERS.boards
+	fi
+
+	if [ "$maintainers" != "-" ]; then
+		echo $maintainers | \
+			awk 'BEGIN {FS=":"}; { for (i = 1; i <= NF; i++) printf("M:\t%s\n", $i) }' \
+			>> MAINTAINERS.boards
+	fi
+
+	if [ "$gittree" != "-" ]; then
+		echo -e "T:\tgit $gittree" >> MAINTAINERS.boards
+	fi
+
+	echo -e "S:\t$status" >> MAINTAINERS.boards
+
+	if [ "$vendor" = "-" ]; then
+		echo -e "F:\tboard/$board/" >> MAINTAINERS.boards
+	else
+		echo -e "F:\tboard/$vendor/$board/" >> MAINTAINERS.boards
+
+		if [ -e board/$vendor/common/Makefile ]; then
+			echo -e "F:\tboard/$vendor/common/" >> MAINTAINERS.boards
+		fi
+	fi
+
+	config_h=include/configs/${board}.h
+	echo -e "F:\t$config_h" >> MAINTAINERS.boards
+
+	if [ ! -e $config_h ]; then
+		echo "$config_h is missing"
+		exit 1
+	fi
+
+	echo >> MAINTAINERS.boards
+done < boards.cfg.sorted
+
+rm -f boards.cfg.sorted boards.cfg.tmp
-- 
1.9.2



More information about the U-Boot mailing list