#!/bin/sh

### Check what we need to do...

fliwi_action=""
fliwi_action_mode=""
fliwi_action_noreboot="0"
fliwi_action_noswraid="0"
proc_cmdline='/proc/cmdline'
###DEBUG###proc_cmdline='/tmp/cmdline'

if [ ! -f "$proc_cmdline" ]; then
  echo "ERROR: '$proc_cmdline' not found..." 1>&2
  exit 1
fi

for x in $(cat $proc_cmdline); do
  case $x in
    YMCCLUSTER_ACTION=*)
      legacy_action=${x#YMCCLUSTER_ACTION=}
    ;;

    FLIWI_ACTION=*)
      fliwi_action=${x#FLIWI_ACTION=}
    ;;
  esac
done

if [ -n "$legacy_action" ]; then
  echo "WARNING: Legacy boot-parameter YMCCLUSTER_ACTION given - merging it with boot-parameter FLIWI_ACTION!" 1>&2
  fliwi_action="$fliwi_action $legacy_action"
fi

for tmp_action in $(echo $fliwi_action | cut -d ',' --output-delimiter=" " -f 1- )
do
  case $tmp_action in
    install|rescue)
      fliwi_action_mode=$tmp_action
    ;;

    noreboot)
      fliwi_action_noreboot=1
    ;;

    noswraid)
      fliwi_action_noswraid=1
    ;;

    *)
      echo "WARNING: The boot-parameter FLIWI_ACTION contains an unknown" 1>&2
      echo "         value '$tmp_action'." 1>&2
      echo "         Continuing with unpredicted results..." 1>&2
    ;;
  esac
done

if [ -z "$fliwi_action_mode" ]; then
  echo "WARNING: Neither install nor rescue given in boot-parameter FLIWI_ACTION" 1>&2
  echo "         Not doing anything..." 1>&2
  exit 1
fi

case "$fliwi_action_mode" in
  install)
    log_begin_msg "Initializing in-memory-system..."
    fliwi-start-installation $fliwi_action_noreboot $fliwi_action_noswraid
    log_end_msg $?
  ;;

  rescue)
    fliwi-prepare-rescue-mode
    exit 0
  ;;

  *)
    echo "WARNING: Neither install nor rescue given in boot-parameter FLIWI_ACTION" 1>&2
    echo "         Not doing anything..." 1>&2
    exit 1
  ;;
esac

