Move MAINTAINERS into a separate directory and reorder it.
Separate various blocks of MAINTAINER sections into separate files.

Signed-off-by: Joe Perches <j...@perches.com>
---
 scripts/move_maintainer_sections.bash | 87 +++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)
 create mode 100755 scripts/move_maintainer_sections.bash

diff --git a/scripts/move_maintainer_sections.bash 
b/scripts/move_maintainer_sections.bash
new file mode 100755
index 000000000000..7ea671b6435d
--- /dev/null
+++ b/scripts/move_maintainer_sections.bash
@@ -0,0 +1,87 @@
+# Select various bits out of MAINTAINERS and create new file and commit
+function separate_and_commit () {
+    local filename=$1
+    shift
+    local comment=$1
+    shift
+    local selection=$@
+
+    cd MAINTAINERS
+    perl ../scripts/parse-maintainers.pl $selection
+    mv MAINTAINERS.new MAINTAINERS
+    mv SECTION.new $filename
+    cd ..
+    cat << EOF > commit.msg
+MAINTAINERS: Move $comment sections to separate file
+
+Make it easier to handle merge conflicts.
+EOF
+    git add MAINTAINERS/$filename
+    git commit -s -F commit.msg MAINTAINERS/MAINTAINERS MAINTAINERS/$filename
+    rm commit.msg
+}
+
+# First move the MAINTAINERS file into a separate MAINTAINERS directory
+git mv MAINTAINERS MAINTAINERS.old
+mkdir MAINTAINERS
+git mv MAINTAINERS.old MAINTAINERS/MAINTAINERS
+cat << EOF > commit.msg
+MAINTAINERS: Move to MAINTAINERS directory
+
+This allows breaking up the very large and difficult to merge
+MAINTAINERS files into separate files
+EOF
+git commit -s -F commit.msg MAINTAINERS/MAINTAINERS
+rm commit.msg
+
+# Sort the MAINTAINERS file appropriately
+
+cd MAINTAINERS
+perl ../scripts/parse-maintainers.pl
+mv MAINTAINERS.new MAINTAINERS
+cd ..
+cat << EOF > commit.msg
+MAINTAINERS: Reorder and alphabetize file sections
+
+Move the sections patterns into a standardized order.
+EOF
+git commit -s -F commit.msg MAINTAINERS/MAINTAINERS 
+rm commit.msg
+
+# Move the kernel related sections
+
+separate_and_commit kernel kernel "\\nF:\\s*kernel/(?:.*/)*\\n" 
"\\nF:\\s*kernel/(?:.*/)*(?:.*\\.[ch]|.*\\*)?\\n"
+separate_and_commit filesystems "filesystems" "\\nF:\\s*fs/"
+separate_and_commit hypervisors "hypervisor subsystems and drivers" 
"\\nL:\\s*xen-devel" "\\nL:\\s*virtualization" "Hyper-V"
+
+# Move arch specific files
+
+for arch in $(find arch -maxdepth 1 -type d | \
+                 sed 's@^arch/@@' | \
+                 awk '{ if (NR > 1) { print; } }' | \
+                 sort) ; do
+    separate_and_commit arch_$arch arch/$arch "\\nF:\\s*arch/$arch/(?:.*/)*\\n"
+done
+
+# Move various subsystems and driver sections
+
+separate_and_commit networking_core "networking core" "\\nF:\\s*net/"
+separate_and_commit drivers_wireless "wireless drivers" 
"\\nF:\\s*drivers/net/wireless/" "\\bWIRELESS\\b"
+separate_and_commit drivers_ethernet "ethernet drivers" 
"\\nF:\\s*drivers/net/ethernet/"
+separate_and_commit drivers_scsi "scsi drivers" "\\nF:\\s*drivers/scsi/"
+separate_and_commit drivers_usb "usb drivers" "\\nF:\\s*drivers/usb/"
+separate_and_commit drivers_media "media drivers" "\\nF:\\s*drivers/media/"
+separate_and_commit drivers_watchdog "watchdog drivers" 
"\\nF:\\s*drivers/watchdog/"
+separate_and_commit sound "sound subsystems and drivers" "\\nF:\\s*sound/"
+separate_and_commit hardware_monitoring "monitoring subsystem and drivers" 
"\\nL:\\s*linux-hwmon" "\\nF:\\s*drivers/hwmon/"
+separate_and_commit acpi "ACPI subsystem and drivers" "\\nL:\\s*linux-acpi" 
"\\nF:\\s*drivers/acpi/"
+separate_and_commit drivers_input "input drivers" "\\nL:\\s*linux-input" 
"\\nF:\\s*drivers/input/"
+separate_and_commit drivers_video "video drivers" "\\nL:\\s*linux-input" 
"\\nF:\\s*drivers/video/"
+separate_and_commit drivers_gpio "gpio drivers" "\\nL:\\s*linux-gpio" 
"\\nF:\\s*drivers/gpio/"
+separate_and_commit drivers_serial "serial/tty drivers" 
"\\nL:\\s*linux-serial" "\\nF:\\s*drivers/tty/"
+separate_and_commit drivers_gpu_drm "GPU/DRM drivers" "\\nF:\\s*drivers/gpu/"
+separate_and_commit drivers_i2c "I2C drivers" "\\nL:\\s*linux-i2c" 
"\\nF:\\s*drivers/i2c/"
+separate_and_commit drivers_staging "staging drivers" 
"\\nL:\\s*devel\@driverdev" "\\nF:\\s*drivers/staging/"
+separate_and_commit power "power management and drivers" "\\nL:\\s*linux-pm" 
"\\nF:\\s*drivers/cpufreq/" "\\nF:\\s*drivers/cpuidle/" 
"\\nF:\\s*drivers/devfreq/"
+separate_and_commit pci "PCI drivers" "\\nL:\\s*linux-pci" 
"\\nF:\\s*drivers/pci/"
+separate_and_commit platform-driver-x86 "x86 platform drivers" 
"\\nL:\\s*platform-driver-x86" "\\nF:\\s*drivers/platform/x86/"
-- 
2.10.0.rc2.1.g053435c

Reply via email to