#!/usr/bin/env python3

import os
import shutil
from pathlib import Path

# Folder containing files to delete
TARGET_FOLDER = "/var/www/html/files/Hylekake6/timelapse"

# Minimum free space percentage required
MIN_FREE_PERCENT = 20.0


def get_free_percent(path="/"):
    total, used, free = shutil.disk_usage(path)
    return (free / total) * 100


def get_files_sorted_by_age(folder):
    files = [
        f for f in Path(folder).iterdir()
        if f.is_file()
    ]
    return sorted(files, key=lambda f: f.stat().st_mtime)


def cleanup():
    free_percent = get_free_percent(TARGET_FOLDER)

    print(f"Free space: {free_percent:.2f}%")

    if free_percent >= MIN_FREE_PERCENT:
        print("Enough free space available.")
        return

    files = get_files_sorted_by_age(TARGET_FOLDER)

    if not files:
        print("No files available to delete.")
        return

    for file_path in files:
        if get_free_percent(TARGET_FOLDER) >= MIN_FREE_PERCENT:
            break

        try:
            print(f"Deleting: {file_path}")
            file_path.unlink()
        except Exception as e:
            print(f"Failed to delete {file_path}: {e}")

    print(f"Free space after cleanup: {get_free_percent(TARGET_FOLDER):.2f}%")


if __name__ == "__main__":
    cleanup()
