#!/bin/bash

#Preupgrade Assistant performs system upgradability assessment
#and gathers information required for successful operating system upgrade.
#Copyright (C) 2013 Red Hat Inc.
#Petr Stodulka <pstodulk@redhat.com>
#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with this program.  If not, see <http://www.gnu.org/licenses/>.
. /usr/share/preupgrade/common.sh
#END GENERATED SECTION

is_uefi() {
  [ -d /sys/firmware/efi ] && return 0
  return 1
}


is_uefi || exit_not_applicable

# I do not remember the exact reason, but we want to rather check the
# executable exists instead of the rpm in this case
command -v efibootmgr >/dev/null || {
  log_extreme_risk "The EFI has been detected but efibootmgr is missing"
  msg="The EFI firmware has been detected but the efibootmgr utility"
  msg+=" is missing. Without the utility it is not possible to proceed with"
  msg+=" the in-place upgrade. Install the efibootmgr rpm and run"
  msg+=" the preupg command again."
  echo "$msg" > solution.txt
  exit_fail
}

# create pre-upgrade and post-upgrade scripts
cp -a "efibootorder_fix_pre.sh" "$PREUPGRADE_SCRIPT_DIR/"
cp -a "efibootorder_fix_post.sh" "$POSTUPGRADE_DIR/"
chmod +x "$PREUPGRADE_SCRIPT_DIR/efibootorder_fix_pre.sh"
chmod +x "$POSTUPGRADE_DIR/efibootorder_fix_post.sh"

log_medium_risk "The Legacy GRUB has to be migrated to GRUB 2 after the upgrade manually"
exit_fail
