sse_export=0
sse_export_fn=""
sse_sudo=0
sse_type="eopkg"

case "$2" in
    "AMT_FPLA" | "AMT_FPLU" | "AMT_FPCLEAN" | "AMT_FCHECK" | "AMT_FREPO" | "AMT_FHIST")
        sse_type="flatpak" ;;
    "AMT_INXI")
        sse_type="inxi" ;;
    "AMT_SSCFG" | "AMT_SSTMR" | "AMT_RBFW")
        sse_type="solseek" ;;
    "A_BLANK")
        echo " "
        exit 0 ;;
esac

if [ "$sse_type" == "solseek" ]; then
    if [ "$2" = "AMT_SSCFG" ]; then
        if [ "$3" == "run" ]; then
            if [ "$SS_LOCAL_CFG" -eq 0 ]; then
                cp "$SS_DATA_PATH/config" "$HOME/.config/solseek/"
            fi

            CFG_HASH1=$(sha256sum "$HOME/.config/solseek/config" | awk '{print $1}')

            if command -v "$SS_EDITOR" &> /dev/null; then
                "$SS_EDITOR" "$HOME/.config/solseek/config"
            else
                echo -e "$(mst "rb") "$SS_EDITOR" not found. Using nano.$(mst "rst")"
                nano "$HOME/.config/solseek/config"
            fi

            CFG_HASH2=$(sha256sum "$HOME/.config/solseek/config" | awk '{print $1}')

            rich "📝 [b]${MSG_PNL_SSCFG_TITLE}[/b]" -p -a heavy -e -S "red"
            echo ""
            echo ""
            if [ "$CFG_HASH1" != "$CFG_HASH2" ]; then
                echo ""
                echo -e "🚩 ${CSS_REDB}${MSG_GEN_PCONFIG}!${CSS_RESET}"
                echo ""
            else
                echo ""
                echo -e "${CSS_BOLDBRIGHT}${ACT_MAIN_UPDATESYS}: ${MSG_UPD_NONE}${CSS_RESET}"
                echo ""
            fi
            echo ""
            echo ""
            rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
            read -p "$MSG_GEN_PRESSENTER..."
        else
            echo $MSG_INFO_EDITPVTOP
            hr "w50"
            ss_info_pane "sscfg"
        fi
    elif [ "$2" = "AMT_SSTMR" ]; then
        TMR_STATUS=$(LC_ALL=C systemctl --user show --value -p ActiveState solseek-uc.timer)
        TMR_CHG_ACTION="enable"
        TMR_CHG_TXT="ACTIVE"
        TMR_STATUS_DISP="${CSS_REDB}Inactive${CSS_RESET}"
        if [ "$TMR_STATUS" == "active" ]; then
            TMR_CHG_ACTION="disable"
            TMR_CHG_TXT="INACTIVE"
            TMR_STATUS_DISP="${CSS_GREENB}Active${CSS_RESET}"
        fi

        if [ "$3" == "run" ]; then
            rich "⚙️ [b]${MSG_INFO_MNGUPCHKSRV}[/b] ${MSG_GEN_CURSTATUS}:" -p -a heavy -e -S "red"
            echo ""

            read -n 1 -p "$MSG_GEN_UPCHKQ1 ${TMR_CHG_TXT^^} $MSG_GEN_UPCHKQ2:" PUCHOICE
            case "$PUCHOICE" in
                [Yy])
                    echo ""
                    systemctl --user daemon-reload
                    systemctl --user "$TMR_CHG_ACTION" --now solseek-uc.timer
                    systemctl --user "$TMR_CHG_ACTION" solseek-uc.service
                    TMR_STATUS=$(LC_ALL=C systemctl --user show --value -p ActiveState solseek-uc.timer)
                    echo ""
                    rich "${MSG_GEN_NEWSTATUS}: ${TMR_STATUS^^}" -p -e -S
                    echo ""
                    read -p "$MSG_GEN_PRESSENTER..."
                    exit 0
                    ;;
                *)
                    exit 0
                    ;;
            esac

            read -p "$MSG_GEN_PRESSENTER..."
        else
            echo $MSG_INFO_EDITPVTOP
            hr "w50"
            ss_info_pane "sstmr"
            echo -e "$TMR_STATUS_DISP"
        fi
    elif [ "$2" = "AMT_RBFW" ]; then
        if [ "$3" == "run" ]; then
            rich "[b]⚙ ${ACT_INFO_RBFW}[/b]" -p -a heavy -e -S "red"
            echo ""
            read -n 1 -p "${ACT_INFO_RBFW}? (N/y):" PUCHOICE
            case "$PUCHOICE" in
              [Yy])
                  systemctl reboot --firmware-setup
                  exit 0
                  ;;
              *)
                  exit 0
                  ;;
            esac
        else
            echo $MSG_INFO_RUNPVTOP
            hr "w50"
            echo -e "${ACT_INFO_RBFW}";
        fi
    fi
    exit 0
elif [ "$sse_type" = "eopkg" ]; then

    ccache_eopkg=0

    if [ "$2" = "AMT_EHIST" ]; then
        sse_cmd="hs"
        sse_export_fn="$HOME/eopkg_history.txt"
        sse_sudo=1
    elif [ "$2" = "AMT_EINST" ]; then
        sse_cmd="li"
        sse_export_fn="$HOME/eopkg_all_installed.txt"
    elif [ "$2" = "AMT_EUSER" ]; then
        sse_cmd="li -e"
        sse_export_fn="$HOME/eopkg_user_installed.txt"
    elif [ "$2" = "AMT_LREPO" ]; then
        sse_cmd="lr"
        sse_export_fn="$HOME/eopkg_repos.txt"
    elif [ "$2" = "rollback" ]; then

        IFS='|' read -r HID HIDTEXT <<< "$3"
        unset IFS
        rich "[b]⚙ EOPKG $ACT_INFO_HROLLBACK: $HIDTEXT [/b]" -p -a heavy -e -S "red"
        echo ""

        HID=$(echo "$HID" | xargs)
        sudo eopkg hs -t "$HID"
        eopkg_cache "force"
        echo ""
        rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
        read -p "$MSG_GEN_PRESSENTER..."
        exit 0

    elif [ "$2" = "AMT_ECHECK" ]; then
        if [ "$3" == "run" ]; then
            rich "[b]⚙ $MSG_GEN_RUN - eopkg check[/b]" -p -a heavy -e -S "red"
            sudo eopkg check
            echo ""
            rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
            read -p "$MSG_GEN_PRESSENTER..."
        else
            echo $MSG_INFO_RUNPVTOP
            hr "w50"
            echo -e "$MSG_GEN_RUN: eopkg check\n";
            ss_format_help eopkg check
        fi
        exit 0
    elif [ "$2" == "AMT_ERBCK" ]; then
        echo $MSG_INFO_ACCESSPVTOP
        hr "w50"
        ss_info_pane "rollback"
        exit 0
    elif [ "$2" = "AMT_ERMO" ]; then
        if [ "$3" == "run" ]; then
            rich "[b]⚙ $ACT_INFO_ERMO - eopkg remove-orphans[/b]" -p -a heavy -e -S "red"
            echo ""
            sudo eopkg rmo
            eopkg_cache "force"
            echo ""
            rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
            read -p "$MSG_GEN_PRESSENTER..."
        else
            echo $MSG_INFO_RUNPVTOP
            hr "w50"
            echo -e "$ACT_INFO_ERMO: eopkg remove-orphans\n";
            ss_format_help eopkg remove-orphans
        fi
        exit 0
    elif [ "$2" = "AMT_EDC" ]; then
        if [ "$3" == "run" ]; then
            rich "[b]⚙ ${ACT_INFO_EDC} - eopkg delete-cache[/b]" -p -a heavy -e -S "red"
            echo ""
            sudo eopkg dc
            eopkg_cache "force"
            echo ""
            rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
            read -p "$MSG_GEN_PRESSENTER..."
        else
            echo $MSG_INFO_RUNPVTOP
            hr "w50"
            echo -e "$ACT_INFO_EDC eopkg delete-cache\n";
            ss_format_help eopkg delete-cache
        fi
        exit 0
    elif [ "$2" = "AMT_EUR" ]; then
        if [ "$3" == "run" ]; then
            rich "[b]⚙ ${ACT_INFO_EUR} - eopkg update-repo[/b]" -p -a heavy -e -S "red"
            echo ""
            sudo eopkg ur --force
            eopkg_cache "force"
            echo ""
            rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
            read -p "$MSG_GEN_PRESSENTER..."
        else
            echo $MSG_INFO_RUNPVTOP
            hr "w50"
            echo -e "$ACT_INFO_EUR eopkg update-repo\n";
            ss_format_help eopkg update-repo
        fi
        exit 0
    else
        echo -e "${CSS_BOLDBRIGHT}${MSG_GEN_BACK}${CSS_RESET}"
        exit 0
    fi

    if [ "$3" == "export" ]; then
        rich "[b]📁 $MSG_GEN_EXPTO: $sse_export_fn[/b]" -p -a heavy -e -S "red"
        echo ""
        if [ "$sse_sudo" -eq 1 ]; then
            sudo eopkg "$sse_cmd" > $sse_export_fn
            else
          eopkg $sse_cmd > $sse_export_fn
        fi
        echo -e "\n${MSG_GEN_PROCCOMP}\n"
        echo ""
        rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
        read -p "$MSG_GEN_PRESSENTER..."
    else
        echo "$MSG_INFO_EXPPVTOP"
        hr "w50"
        ss_clean_of
        sleep 0.5 && eopkg $sse_cmd
    fi
elif [ "$sse_type" == "flatpak" ]; then
    if [ "$2" = "AMT_FPCLEAN" ]; then
        if [ "$3" == "run" ]; then
            rich "[b]⚙ $ACT_INFO_CHECK: flatpak uninstall --unused[/b]" -p -a heavy -e -S "red"
            echo ""
            flatpak uninstall --unused
            echo ""
            rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
            read -p "$MSG_GEN_PRESSENTER..."
        else
            echo $MSG_INFO_RUNPVTOP
            hr "w50"
            echo -e "$ACT_INFO_CHECK: flatpak uninstall --unused\n";
            ss_format_help flatpak uninstall --unused
        fi
        exit 0
    elif [ "$2" == "AMT_FCHECK" ]; then
        if [ "$3" == "run" ]; then
            rich "[b]⚙ $MSG_GEN_RUN - flatpak repair[/b]" -p -a heavy -e -S "red"
            echo ""
            flatpak repair
            echo ""
            rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
            read -p "$MSG_GEN_PRESSENTER..."
        else
            echo $MSG_INFO_RUNPVTOP
            hr "w50"
            echo -e "$MSG_GEN_RUN - flatpak repair\n";
            ss_format_help flatpak repair --unused
        fi
        exit 0
    fi
    if [ "$2" = "AMT_FPLA" ]; then
        sse_cmd="list --columns=name,version"
        sse_export_fn="$HOME/flatpak_all_installed.txt"
        sse_sudo=1
    elif [ "$2" = "AMT_FPLU" ]; then
        sse_cmd="list --app --columns=name,version"
        sse_export_fn="$HOME/flatpak_user_installed.txt"
    elif [ "$2" = "AMT_FREPO" ]; then
        sse_cmd="remotes --show-disabled --columns=name,url,options"
        sse_export_fn="$HOME/flatpak_remotes.txt"
    elif [ "$2" = "AMT_FHIST" ]; then
        sse_cmd="history --reverse"
        sse_export_fn="$HOME/flatpak_history.txt"
    fi
    if [ "$3" == "export" ]; then
        rich "[b]📁 $MSG_GEN_EXPTO: $sse_export_fn[/b]" -p -a heavy -e -S "red"
        echo ""
        flatpak $sse_cmd > $sse_export_fn
        echo -e "\n${MSG_GEN_PROCCOMP}\n"
        echo ""
        rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
        read -p "$MSG_GEN_PRESSENTER..."
    else
        echo "$MSG_INFO_EXPPVTOP"
        hr "w50"
        printf "$(flatpak $sse_cmd 2>/dev/null)"
    fi
elif [ "$sse_type" == "inxi" ]; then
  sse_export_fn="$HOME/inxi_output.txt"
  if [ "$3" == "export" ]; then
        rich "[b]📁 $MSG_GEN_EXPTO: $sse_export_fn[/b]" -p -a heavy -e -S "red"
        echo ""
        inxi -b > $sse_export_fn
        echo -e "\n${MSG_GEN_PROCCOMP}\n"
        echo ""
        rich "[b]✓ $(date +"%T") - $MSG_GEN_PROCCOMP[/b]" -p -a heavy -e -s "green" -S "green" -C
        read -p "$MSG_GEN_PRESSENTER..."
  else
        echo "$MSG_INFO_EXPPVTOP"
        hr "w50"
        inxi -b --tty -y 80 2>/dev/null
  fi
fi
