#!/bin/bash

if [ "$1" ]; then
  mds="`echo $@ | sed 's|/dev/||g'`"
else
  mds="`cat /proc/mdstat | grep ^md | cut -d' ' -f1 | sort`"
fi

for md in $mds; do
  export md
  mdadm --detail /dev/$md | awk '
    $5=="faulty" && $6=="spare" && $7=="writemostly" {
      printf "mdadm /dev/%s -r %s -a -W %s\n", ENVIRON["md"], $7, $7
      next
    }
    $5=="faulty" && $6=="spare" {
      printf "mdadm /dev/%s -r %s -a %s\n", ENVIRON["md"], $7, $7
    }
  '
done
echo "watch cat /proc/mdstat"
