#!/bin/bash
# ---------------------------------------------------------------------
# Copyright (c) 2020, 2022 by Cisco Systems, Inc.
# All rights reserved.
# Author: Wilson Talaugon (wtalaugo@cisco.com)
#
# xr_emergency_mode_setup
# Script that sets up initramfs with the PD scripts that are
# needed when emergency_shell is invoked.
# ---------------------------------------------------------------------

DR_DIR="/mnt/dr_part"
DR_UTILS_DIR="$DR_DIR/utils"
# copy PD config file and utility script from the DR storage
DR_PD_CONFIG_FILE="$DR_UTILS_DIR/fpga_platform_data_config"
DR_PD_SCRIPT="$DR_UTILS_DIR/fpga-functions"
DR_EMERGENCY_RECOVERY_SCRIPT="$DR_UTILS_DIR/xr_recovery"
DR_PD_FUNCTIONS_FILE="$DR_UTILS_DIR/pd-functions"
DR_DBE_DEFS_FILE="$DR_UTILS_DIR/doorbell_event_defs"
DR_SEND_DBE_SCRIPT="$DR_UTILS_DIR/send_doorbell_event.sh"

LOCAL_ETC_DIR="/usr/local/etc"
if [[ -f $DR_PD_SCRIPT && -f $DR_PD_CONFIG_FILE ]]; then
   mkdir -p $LOCAL_ETC_DIR
   cp -p $DR_PD_CONFIG_FILE $LOCAL_ETC_DIR
   cp -p $DR_PD_SCRIPT $LOCAL_ETC_DIR
   cp -p $DR_DBE_DEFS_FILE $LOCAL_ETC_DIR
   if [ -f $DR_EMERGENCY_RECOVERY_SCRIPT ]; then
      cp -p $DR_EMERGENCY_RECOVERY_SCRIPT $LOCAL_ETC_DIR
   fi
   source $LOCAL_ETC_DIR/$(basename $DR_PD_SCRIPT)
   if [ $? -eq 1 ]; then
      return 1
   fi
   fpga_disable_wdog
   if [ $? -eq 0 ]; then
      export PATH="$PATH:$LOCAL_ETC_DIR"
      export EMERGENCY_MODE_SETUP=1
   else
      return 1
   fi
fi
LOCAL_INITD_DIR="/etc/init.d"
if [ -f $DR_DBE_DEFS_FILE ]; then
    cp -p $DR_DBE_DEFS_FILE $LOCAL_ETC_DIR
fi
if [ -f $DR_SEND_DBE_SCRIPT ]; then
    cp -p $DR_SEND_DBE_SCRIPT $LOCAL_ETC_DIR
fi
if [ ! -f !$LOCAL_INITD_DIR/$(basename $DR_PD_FUNCTIONS_FILE) ]; then
    cp -p $DR_PD_FUNCTIONS_FILE $LOCAL_INITD_DIR
fi

source $LOCAL_INITD_DIR/$(basename $DR_PD_FUNCTIONS_FILE)
