#!/bin/bash
echo "-- Matching Versions: $AVM_VERSION-$AVM_SUBVERSION - $AVM_2_VERSION-$AVM_2_SUBVERSION"
# only executed if productname is changed
if [ ! -e "${SRC}"/etc/default.${CONFIG_PRODUKT} ]; then
echo -e "\033[1m${SORCE_PRODUKT}  --->   ${CONFIG_PRODUKT}\033[0m "
 echo2 "-- Move contents of OEM directory:"
 echo2 "      move /etc/default.${SORCE_PRODUKT} --> /etc/default.${CONFIG_PRODUKT}"
    mkdir -m 755 "${SRC}/etc/default.${CONFIG_PRODUKT}"
   "$TAR" -c -C "${SRC}/etc/default.${SORCE_PRODUKT}" . | "$TAR" -x -C "${SRC}/etc/default.${CONFIG_PRODUKT}"
    rm -fr "${SRC}"/etc/default.${SORCE_PRODUKT}
fi
echo "Replacing hardware related files of AVM firmware images ..."
echo2 "  -- copy original AVM module:"
echo2 "      /lib/modules"


if [ ${ATA_ONLY} = "n" ]; then
 #add DSL driver dependig on the settings made
 #7170
 [ ${SAVE_AVM_DSL} = "y" ] && [ -f "${SRC}"/lib/modules/microvoip-dsl.bin ] && cp -fdrp "${SRC}"/lib/modules/microvoip-dsl.bin --target-directory=./addon/tmp/modules &&\
 echo "-- AVM DSL driver saved to: ./addon/tmp/modules!"
 [ ${SAVE_SRC2_DSL} = "y" ] && [ -f "${SRC_2}"/lib/modules/microvoip-dsl.bin ] && cp -fdrp "${SRC_2}"/lib/modules/microvoip-dsl.bin --target-directory=./addon/tmp/modules &&\
 echo "-- AVM DSL driver saved to: ./addon/tmp/modules!"
 [ ${USE_OWN_DSL} = "y" ] && [ -f ./addon/tmp/modules/microvoip-dsl.bin ] && cp -fdrp ./addon/tmp/modules/microvoip-dsl.bin --target-directory="${SRC}"/lib/modules &&\
 echo "-- DSL driver was taken from local directory ./addon/tmp/modules!"
 [ ${USE_SRC2_DSL} = "y" ] && [ -f "${SRC_2}"/lib/modules/microvoip-dsl.bin ] && cp -fdrp "${SRC_2}"/lib/modules/microvoip-dsl.bin --target-directory="${SRC}"/lib/modules &&\
 echo "-- DSL driver was taken from ${SORCE_2_PRODUKT}!"
 #add DSL driver dependig on the settings made in
 #7270 
 #annex B driver
 mkdir -p ./addon/tmp/modules/dsp_ur8
 if [ -d "${SRC}/lib/modules/dsp_ur8"  ]; then
  [ ${SAVE_AVM_DSL} = "y" ] && [ -f "${SRC}/lib/modules/dsp_ur8/ur8-B-dsl.bin"  ] && cp -fdrp "${SRC}"/lib/modules/dsp_ur8/ur8-B-dsl.bin --target-directory=./addon/tmp/modules/dsp_ur8 &&\
  echo "-- AVM DSL Annex B driver saved to: ./addon/tmp/modules!"
  [ ${SAVE_SRC2_DSL} = "y" ] && [ -f "${SRC_2}/lib/modules/dsp_ur8/ur8-B-dsl.bin"  ] && cp -fdrp "${SRC_2}"/lib/modules/dsp_ur8/ur8-B-dsl.bin --target-directory=./addon/tmp/modules/dsp_ur8 &&\
  echo "-- AVM DSL Annex B driver saved to: ./addon/tmp/modules!"
  [ ${USE_OWN_DSL} = "y" ] && [ -f "./addon/tmp/modules/dsp_ur8/ur8-B-dsl.bin"  ] && cp -fdrp ./addon/tmp/modules/dsp_ur8/ur8-B-dsl.bin --target-directory="${SRC}"/lib/modules/dsp_ur8 &&\
  echo "-- DSL Annex B driver was taken from local directory ./addon/tmp/modules!"
  [ ${USE_SRC2_DSL} = "y" ] && [ -f "${SRC_2}/lib/modules/dsp_ur8/ur8-B-dsl.bin"  ] && cp -fdrp "${SRC_2}"/lib/modules/dsp_ur8/ur8-B-dsl.bin --target-directory="${SRC}"/lib/modules/dsp_ur8 &&\
  echo "-- DSL Annex B driver was taken from ${SORCE_2_PRODUKT}!" 
  #annex A driver
  [ ${SAVE_AVM_DSL} = "y" ] && [ -f "${SRC}/lib/modules/dsp_ur8/ur8-A-dsl.bin"  ] && cp -fdrp "${SRC}"/lib/modules/dsp_ur8/ur8-A-dsl.bin --target-directory=./addon/tmp/modules/dsp_ur8 &&\
  echo "-- AVM DSL Annex A driver saved to: ./addon/tmp/modules!"
  [ ${SAVE_SRC2_DSL} = "y" ] && [ -f "${SRC_2}/lib/modules/dsp_ur8/ur8-A-dsl.bin"  ] && cp -fdrp "${SRC_2}"/lib/modules/dsp_ur8/ur8-A-dsl.bin --target-directory=./addon/tmp/modules/dsp_ur8 &&\
  echo "-- AVM DSL Annex A driver saved to: ./addon/tmp/modules!"
  [ ${USE_OWN_DSL} = "y" ] && [ -f "./addon/tmp/modules/dsp_ur8/ur8-A-dsl.bin"  ] && cp -fdrp ./addon/tmp/modules/dsp_ur8/ur8-A-dsl.bin --target-directory="${SRC}"/lib/modules/dsp_ur8 &&\
  echo "-- DSL Annex A driver was taken from local directory ./addon/tmp/modules!"
  [ ${USE_SRC2_DSL} = "y" ] && [ -f "${SRC_2}/lib/modules/dsp_ur8/ur8-A-dsl.bin"  ] && cp -fdrp "${SRC_2}"/lib/modules/dsp_ur8/ur8-A-dsl.bin --target-directory="${SRC}"/lib/modules/dsp_ur8 &&\
  echo "-- DSL Annex A driver was taken from ${SORCE_2_PRODUKT}!" 
 fi
else
 #remove ADSL
 #dont start dsl
 sed -i -e 's|/etc/init.d/rc.dsl.sh start||' "${SRC}/etc/init.d/rc.S" 
 rm -fr "${SRC}"/lib/modules/dsp_ur8
 rm -f "${SRC}"/lib/modules/microvoip-dsl.bin
#<-- ATA only
fi
#save space on 8MB boxes specially
[ "${REMOVE_ANNEX_B_DSL_DRIVER}" = "y" ] && [ -f "${SRC}/lib/modules/dsp_ur8/ur8-B-dsl.bin" ] && rm -f "${SRC}"/lib/modules/dsp_ur8/ur8-B-dsl.bin &&\
echo "-- DSL Annex B driver was removed from ${SORCE_PRODUKT}!"
#save space on 8MB boxes specially
[ "${REMOVE_ANNEX_A_DSL_DRIVER}" = "y" ] && [ -f "${SRC}/lib/modules/dsp_ur8/ur8-A-dsl.bin" ] && rm -f "${SRC}"/lib/modules/dsp_ur8/ur8-A-dsl.bin &&\
echo "-- DSL Annex A driver was removed from ${SORCE_PRODUKT}!"


#copy second source www dir
[ ${USE_SOURCE2_WEBMNUE} = "y" ] && $sh2_DIR/copy_www_SRC2 "${SRC}" "${SRC_2}"
[ ${USE_SOURCE2_WEBMNUE} = "y" ] && . $inc_DIR/get_SRC2_ver 

#copy second source internet dsl menue
[ ${USE_SOURCE2_DSLMNUE} = "y" ] && $sh2_DIR/copy_dsl_tab_pages_SRC2 "${SRC}" "${SRC_2}"

echo2 "-- copy complete AVM source to destination directory!"
# correct setings to fit hardware
$sh_DIR/patch_config_rc.conf.sh "${SRC}" "${DST}" 7270
#patch annex parameter
$sh_DIR/patch_annex.sh "${SRC}"
# add language timezone country
$sh_DIR/add_multi_settings.sh
cp -fdrp "${DST}"/lib/modules/dectfw_firstlevel_488.hex --target-directory="${SRC}"/lib/modules &&\
cp -fdrp "${DST}"/lib/modules/dectfw_secondlevel_488.hex --target-directory="${SRC}"/lib/modules &&\
echo "-- DECT driver was taken from original AVM source."

if [ "${SAVE_SRC2_DECTDRIVER}" = "y" ]; then
    mkdir -p ./addon/tmp/W920/squashfs-root/lib/modules
    cp -fdrp "${SRC_2}"/lib/modules/dectfw_firstlevel_488.hex --target-directory=./addon/tmp/W920/squashfs-root/lib/modules &&\
    cp -fdrp "${SRC_2}"/lib/modules/dectfw_secondlevel_488.hex --target-directory=./addon/tmp/W920/squashfs-root/lib/modules &&\
    echo "-- 2nd AVM Firmware DECT driver saved to: ./addon/tmp/W920"
fi
[ "${FORCE_SRC2_DECTDRIVER}" = "y" ] && cp -fdrp "${SRC_2}"/lib/modules/dectfw_firstlevel_488.hex --target-directory="${SRC}"/lib/modules &&\
cp -fdrp "${SRC_2}"/lib/modules/dectfw_secondlevel_488.hex --target-directory="${SRC}"/lib/modules &&\
echo "-- DECT driver was taken from 2nd AVM source."
[ "${FORCE_OWN_DECTDRIVER}" = "y" ] && cp -fdrp ./addon/tmp/W920/squashfs-root/lib/modules/dectfw_firstlevel_488.hex --target-directory="${SRC}"/lib/modules &&\
cp -fdrp ./addon/tmp/W920/squashfs-root/lib/modules/dectfw_secondlevel_488.hex --target-directory="${SRC}"/lib/modules &&\
echo "-- DECT driver was taken from local directory ./addon/tmp/W920"
if `cat "${SRC}/etc/init.d/rc.S" | grep -q 'level.hex' ` && ! [ -f "${SRC}"/lib/modules/dectfw_firstlevel_488.hex ]; then
 echo "You must use dect driver form 2nd AVM source or one that was saved before" && sleep 10 && exit 1
fi

# delete section 
sed -i -e "/piglet_bitfile=\//,/modprobe/d" "${SRC}/etc/init.d/rc.S"
sed -i -e '/piglet_bitfile=$piglet_bitfile \\/d' "${SRC}/etc/init.d/rc.S"
sed -i -e '/piglet_enable_button=2 \\/d' "${SRC}/etc/init.d/rc.S"
sed -i -e '/dect_firstlevelfile=$dect_firstlevelfile \\/d' "${SRC}/etc/init.d/rc.S"
sed -i -e '/dect_secondlevelfile=$dect_secondlevelfile \\/d' "${SRC}/etc/init.d/rc.S"
sed -i -e '/dect_firstlevelfile=\/lib\/modules\/dectfw_firstlevel_488.hex/d' "${SRC}/etc/init.d/rc.S"
sed -i -e '/dect_secondlevelfile=\/lib\/modules\/dectfw_secondlevel_488.hex/d' "${SRC}/etc/init.d/rc.S"
sed -i -e '/$piglet_load_params/d' "${SRC}/etc/init.d/rc.S"
sed -i -e '/## DECT-Anlage braucht/d' "${SRC}/etc/init.d/rc.S"
sed -i -e 's/7270/7270plus/' "${SRC}/etc/init.d/rc.S"


# add section 
sed -i -e '/xx=.cat \/proc\/mtd | grep ."jffs2."./i\
dect_firstlevelfile=/lib/modules/dectfw_firstlevel_488.hex\
dect_secondlevelfile=/lib/modules/dectfw_secondlevel_488.hex\
piglet_bitfile=/lib/modules/microvoip_isdn_top.bit\
if [ -z $piglet_bitfilemode ] ; then piglet_bitfilemode=0 ; fi\
echo PigletMode: $piglet_bitfilemode\
piglet_load_params="\\\
piglet_enable_button=2 \\\
piglet_bitfilemode=$piglet_bitfilemode \\\
piglet_use_pll3_clk=1 \\\
dect_firstlevelfile=$dect_firstlevelfile \\\
dect_secondlevelfile=$dect_secondlevelfile \\\
"\
modprobe Piglet_noemif piglet_bitfile=$piglet_bitfile piglet_potsbitfile=$piglet_potsbitfile $piglet_load_params' "${SRC}/etc/init.d/rc.S"

#remove 7270 DECT driver
rm -f "${SRC}"/lib/modules/dectfw_firstlevel.hex
rm -f "${SRC}"/lib/modules/dectfw_secondlevel.hex
#xilinx driver must be for the hardware in use
rm -f "${SRC}"/lib/modules/microvoip_isdn_top.bit
rm -f "${SRC}"/lib/modules/bitfile.bit
# 7240
rm -f "${SRC}"/lib/modules/bitfile_pots.bit 
rm -f "${SRC}"/lib/modules/bitfile_isdn.bit 
[ -e "${DST}"/lib/modules/bitfile_pots.bit ] && cp -fdrp "${DST}"/lib/modules/bitfile_pots.bit --target-directory="${SRC}"/lib/modules &&\
echo "-- Xilinx bitfile was taken from the original base firmware"
[ -e "${DST}"/lib/modules/bitfile_isdn.bit ] && cp -fdrp "${DST}"/lib/modules/bitfile_isdn.bit --target-directory="${SRC}"/lib/modules &&\
[ -e "${DST}"/lib/modules/bitfile_isdn.bit ] && cp -fdrp "${DST}"/lib/modules/bitfile_isdn.bit "${SRC}"/lib/modules/microvoip_isdn_top.bit &&\
echo "-- Xilinx bitfile was taken from the original base firmware"
[ -e "${DST}"/lib/modules/bitfile.bit ] && cp -fdrp "${DST}"/lib/modules/bitfile.bit "${SRC}"/lib/modules/microvoip_isdn_top.bit &&\
echo "-- Xilinx bitfile was taken from the original base firmware"

# add buchsend button to fon bookpage
[ "${ADD_PHONESEND}" = "y" ] && $sh_DIR/patch_fonbuch.sh "${SRC}"
#remove kids and help
[ "${REMOVE_KIDS}" = "y" ] && $sh_DIR/rmv_kids.sh "${SRC}"
[ "${REMOVE_HELP}" = "y" ] && $sh_DIR/rmv_help.sh "${SRC}"

echo "********************************************************************************"
sleep 1