#!/bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2025 Bardia Moshiri <bardia@furilabs.com>

set -e

ACTION="$1"
shift

if [ -f /usr/lib/furios/device/furios-persist-partition ]; then
    source /usr/lib/furios/device/furios-persist-partition
else
    echo "furios-persist is not supported"
    exit 1
fi

export LC_ALL="en_US.UTF-8"

case "$ACTION" in
    "mount")
        mkdir -p /var/lib/furios-persist
        mount "${FURIOS_PERSIST}" /var/lib/furios-persist
        mkdir -p /var/lib/furios-persist/bootman
        ;;
    "write_partitions")
        mkdir -p /var/lib/furios-persist/bootman
        echo "$1" > /var/lib/furios-persist/bootman/partitions
        ;;
    "write_commands")
        mkdir -p /var/lib/furios-persist/bootman
        echo "$1" > /var/lib/furios-persist/bootman/commands
        ;;
    "write_wip")
        mkdir -p /var/lib/furios-persist/bootman
        echo "$1" > /var/lib/furios-persist/bootman/wip-partitions
        ;;
    "lvdisplay")
        lvdisplay "$1"
        ;;
    "remove_wip")
        rm -f /var/lib/furios-persist/bootman/wip-partitions
        ;;
    "remove_entry")
        entry=$(echo "$1" | sed 's/\//\\\//g')
        sed -i "/^$entry:/d" /var/lib/furios-persist/bootman/partitions
        ;;
    "blockdev")
        blockdev --getsize64 "$1"
        ;;
    *)
        echo "Unknown action: $ACTION"
        exit 1
        ;;
esac
