#!/sbin/sh
# Shell Script EDIFY Replacement

#Variables
OUTFD=/proc/self/fd/$2;
ZIPFILE="$3";
COMMONDIR=/tmp/AFZCScripts;
TMPDIR=/dev/tmp
NikGappsAddonDir="/system/addon.d/nikgapps"

addToLog() {
  echo "$1" >> "/tmp/NikGapps.log"
}

decrypt() {
  mkdir -p "$(dirname "$2")"
  addToLog "- decrypting $COMMONDIR/busybox"
  addToLog "  -> source $1"
  addToLog "  -> destination $2"
  unzip -o "$COMMONDIR/busybox" "$1" -p >"$2"
  chmod 755 "$2";
}

ui_print() {
  until [ ! "$1" ]; do
    echo "ui_print $1
      ui_print" >> "$OUTFD";
      addToLog "$1"
    shift;
  done;
}

# package_extract_file <file> <destination_file>
package_extract_file() { mkdir -p "$(dirname "$2")"; unzip -o "$ZIPFILE" "$1" -p > "$2"; }

# package_extract_dir <dir> <destination_dir>
package_extract_dir() {
  local entry outfile;
  for entry in $(unzip -l "$ZIPFILE" "$1/*" 2>/dev/null | tail -n+4 | grep -v '/$' | grep -o " $1.*$" | cut -c2-); do
    outfile="$(echo "$entry" | sed "s|${1}|${2}|")";
    mkdir -p "$(dirname "$outfile")";
    unzip -o "$ZIPFILE" "$entry" -p > "$outfile";
  done;
}

#-----------------------------------Execution Starts---------------------------------#

package_extract_file "tools/busybox" "$COMMONDIR/busybox"

decrypt "nikgapps_installer" "$COMMONDIR/nikgapps_installer"
decrypt "ak3mount" "$COMMONDIR/ak3mount.sh"
decrypt "addon" "$COMMONDIR/addon"
decrypt "header" "$COMMONDIR/header"
decrypt "functions" "$COMMONDIR/functions"
decrypt "nikgapps.sh" "$COMMONDIR/nikgapps.sh"

rm -f "$COMMONDIR/busybox"

# Mount the partitions
. $COMMONDIR/ak3mount.sh
# Install the stuff
. $COMMONDIR/nikgapps_installer "$2" "$3"
show_progress 1.00 0

# Store the size of partitions before installation starts
df > "$COMMONDIR/size_before.txt"
df -h > "$COMMONDIR/size_before_readable.txt"
# Setting up tools
SetupTools

if [ $(InitializeAppSet "Core") = "1" ]; then
  InstallPackage "Core" "ExtraFiles"
  set_progress 0.11
  InstallPackage "Core" "GooglePlayStore"
  set_progress 0.22
  InstallPackage "Core" "GoogleServicesFramework"
  set_progress 0.33
  InstallPackage "Core" "GoogleContactsSyncAdapter"
  set_progress 0.44
  InstallPackage "Core" "GoogleCalendarSyncAdapter"
  set_progress 0.55
  InstallPackage "Core" "GmsCore"
  set_progress 0.66
else
  ui_print "- Skipping Core"
fi
if [ $(InitializeAppSet "DigitalWellbeing") = "1" ]; then
  InstallPackage "DigitalWellbeing" "DigitalWellbeing"
  set_progress 0.77
else
  ui_print "- Skipping DigitalWellbeing"
fi
if [ $(InitializeAppSet "YouTube") = "1" ]; then
  InstallPackage "YouTube" "YouTube"
  set_progress 0.88
else
  ui_print "- Skipping YouTube"
fi

set_progress 1.00

exitInstall

