[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