# ferreus_orbit Plugins for GIGABYTE "MZ01-CE1-00"

fo_get_sorted_name(){
  local host=$(echo $DEVPATH | cut -d/ -f6)
  case "$host" in
    ata1|ata2)
      local ata=$(echo "${host}" |awk -F'ata' '{print $2}')
      local id=$(($ata - 1))
      local num=$id
      ;;
    *)
      local drawer=$(echo ${ID_PATH} | cut -d- -f2 | cut -d: -f2)
      local num=$(echo ${ID_PATH} | cut -d- -f4 | awk -F'phy' '{print $2}')
      case "$drawer" in
        81)
          drawer=0
          local id=$((NUM+2))
          ;;
        41)
          drawer=1
          local id=$((NUM+10))
          ;;
        01)
          local drawer=2
          id=$((NUM+18))
         ;;
        *)
           logger -t "udev" "Device $DEVPATH detected but not supported"; exit 1
          ;;
      esac
      ;;
  esac
    
  if [ -z "$MAXILIUM_ARG_to_fo_name" ]; then
    echo sd$(fo_get_dev_letter ${id})
    exit 0
  else
    if [ -z "${drawer}" ]; then
      echo "Disk${num}"
    else
      echo "Drawer${drawer}-Disk${num}"
    fi
    exit 0
  fi
}

get_dispo(){
  echo 'HDD disposition (Front Drawers):'
  # Drawer 0
  printf "     ";printf -- "_%.s" $(seq 1 83);echo
  local D0=$(fo_get_name_by_bus "scsi@0:0.3.0" 20); local F0=$(fo_get_field_by_bus "scsi@0:0.3.0" 20)
  local D1=$(fo_get_name_by_bus "scsi@0:0.4.0" 20); local F1=$(fo_get_field_by_bus "scsi@0:0.4.0" 21)
  local D2=$(fo_get_name_by_bus "scsi@0:0.2.0" 20); local F2=$(fo_get_field_by_bus "scsi@0:0.2.0" 21)
  local D3=$(fo_get_name_by_bus "scsi@0:0.0.0" 20); local F3=$(fo_get_field_by_bus "scsi@0:0.0.0" 20)
  local D4=$(fo_get_name_by_bus "scsi@0:0.6.0" 20); local F4=$(fo_get_field_by_bus "scsi@0:0.6.0" 20)
  local D5=$(fo_get_name_by_bus "scsi@0:0.7.0" 23); local F5=$(fo_get_field_by_bus "scsi@0:0.7.0" 24)
  local D6=$(fo_get_name_by_bus "scsi@0:0.5.0" 23); local F6=$(fo_get_field_by_bus "scsi@0:0.5.0" 24)
  local D7=$(fo_get_name_by_bus "scsi@0:0.1.0" 20); local F7=$(fo_get_field_by_bus "scsi@0:0.1.0" 20)
  printf "    /${D0}/${D1}|${D2}\\${D3}\\\\\n"
  printf "   /${F0}/${F1}|${F2}\\${F3}\\\\\n"
  printf "  ";printf -- ".%.s" $(seq 1 89);echo
  printf " /${D4}/${D5}|${D6}\\${D7}\\\\\n"
  printf "/${F4}/${F5}|${F6}\\${F7}\\\\\n"
  printf -- "_%.s" $(seq 1 42);fo_center_align "Drawer 0" 9;printf -- "_%.s" $(seq 1 42);echo
  # Drawer 1
  D0=$(fo_get_name_by_bus "scsi@17:0.1.0" 20); F0=$(fo_get_field_by_bus "scsi@17:0.1.0" 20)
  D1=$(fo_get_name_by_bus "scsi@17:0.7.0" 20); F1=$(fo_get_field_by_bus "scsi@17:0.7.0" 21)
  D2=$(fo_get_name_by_bus "scsi@17:0.6.0" 20); F2=$(fo_get_field_by_bus "scsi@17:0.6.0" 21)
  D3=$(fo_get_name_by_bus "scsi@17:0.0.0" 20); F3=$(fo_get_field_by_bus "scsi@17:0.0.0" 20)
  D4=$(fo_get_name_by_bus "scsi@17:0.4.0" 20); F4=$(fo_get_field_by_bus "scsi@17:0.4.0" 20)
  D5=$(fo_get_name_by_bus "scsi@17:0.5.0" 23); F5=$(fo_get_field_by_bus "scsi@17:0.5.0" 24)
  D6=$(fo_get_name_by_bus "scsi@17:0.3.0" 23); F6=$(fo_get_field_by_bus "scsi@17:0.3.0" 24)
  D7=$(fo_get_name_by_bus "scsi@17:0.2.0" 20); F7=$(fo_get_field_by_bus "scsi@17:0.2.0" 20)
  printf "    /${D0}/${D1}|${D2}\\${D3}\\\\\n"
  printf "   /${F0}/${F1}|${F2}\\${F3}\\\\\n"
  printf "  ";printf -- ".%.s" $(seq 1 89);echo
  printf " /${D4}/${D5}|${D6}\\${D7}\\\\\n"
  printf "/${F4}/${F5}|${F6}\\${F7}\\\\\n"
  printf -- "_%.s" $(seq 1 42);fo_center_align "Drawer 1" 9;printf -- "_%.s" $(seq 1 42);echo
  # Drawer 2
  D0=$(fo_get_name_by_bus "scsi@18:0.0.0" 20); F0=$(fo_get_field_by_bus "scsi@18:0.0.0" 20)
  D1=$(fo_get_name_by_bus "scsi@18:0.7.0" 20); F1=$(fo_get_field_by_bus "scsi@18:0.7.0" 21)
  D2=$(fo_get_name_by_bus "scsi@18:0.3.0" 20); F2=$(fo_get_field_by_bus "scsi@18:0.3.0" 21)
  D3=$(fo_get_name_by_bus "scsi@18:0.1.0" 20); F3=$(fo_get_field_by_bus "scsi@18:0.1.0" 20)
  D4=$(fo_get_name_by_bus "scsi@18:0.5.0" 20); F4=$(fo_get_field_by_bus "scsi@18:0.5.0" 20)
  D5=$(fo_get_name_by_bus "scsi@18:0.6.0" 23); F5=$(fo_get_field_by_bus "scsi@18:0.6.0" 24)
  D6=$(fo_get_name_by_bus "scsi@18:0.4.0" 23); F6=$(fo_get_field_by_bus "scsi@18:0.4.0" 24)
  D7=$(fo_get_name_by_bus "scsi@18:0.2.0" 20); F7=$(fo_get_field_by_bus "scsi@18:0.2.0" 20)
  printf "    /${D0}/${D1}|${D2}\\${D3}\\\\\n"
  printf "   /${F0}/${F1}|${F2}\\${F3}\\\\\n"
  printf "  ";printf -- ".%.s" $(seq 1 89);echo
  printf " /${D4}/${D5}|${D6}\\${D7}\\\\\n"
  printf "/${F4}/${F5}|${F6}\\${F7}\\\\\n"
  printf -- "_%.s" $(seq 1 42);fo_center_align "Drawer 2" 9;printf -- "_%.s" $(seq 1 42);echo
# System drive slots (Rear Panel):
  D0=$(fo_get_name_by_bus "scsi@2:0.0.0" 20); F0=$(fo_get_field_by_bus "scsi@2:0.0.0" 20)
  D1=$(fo_get_name_by_bus "scsi@1:0.0.0" 20); F1=$(fo_get_field_by_bus "scsi@1:0.0.0" 20)
  echo;echo 'System drive slots (Rear Panel):'
  printf -- "_%.s" $(seq 1 43);echo
  printf "|${D0}|${D1}|\n"
  printf "|${F0}|${F1}|\n"
  printf -- "-%.s" $(seq 1 43);echo
}
