HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: /volume1/docker/homeassistant2025/custom_components/auto_backup/button.py
from homeassistant.components.button import ButtonEntity, ButtonEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback

from .manager import AutoBackup
from .const import DATA_AUTO_BACKUP
from .helpers import get_device_info


async def async_setup_entry(
    hass: HomeAssistant, entry: ConfigEntry, async_add_entities: AddEntitiesCallback
):
    """Set up Auto Backup sensors based on a config entry."""
    auto_backup = hass.data[DATA_AUTO_BACKUP]
    async_add_entities([AutoBackupPurgeButton(entry, auto_backup)])


class AutoBackupPurgeButton(ButtonEntity):
    entity_description = ButtonEntityDescription(
        key="purge",
        name="Purge backups",
        icon="mdi:close-circle",
    )
    _attr_has_entity_name = True

    def __init__(self, entry: ConfigEntry, auto_backup: AutoBackup):
        self._auto_backup = auto_backup
        self._attr_unique_id = self.entity_description.key
        self._attr_device_info = get_device_info(entry)

    async def async_press(self) -> None:
        """Purge backups."""
        await self._auto_backup.purge_backups()