#!/usr/bin/env scheme-script
;; -*- mode: scheme; coding: utf-8 -*- !#
;; Copyright © 2025 Vadym Kochan <vadim4j@gmail.com>

#!r6rs

(import
  (rnrs (6))
  (fs fatfs)
  (fs fatfs port-device))

(when (fx<? (length (command-line)) 2)
  (error 'main "Missing path to the FAT device/file"))

(let ([fat (open-fatfs (open-file-fatfs-device (cadr (command-line)) #f))])
  (display "FAT type: ")(display (fatfs-type fat))(newline)
  (display "FAT numbers: ")(display (fatfs-FATs fat))(newline)
  (display "Volume id: ")(display (fatfs-volume-id fat))(newline)
  (display "Volume name: ")(display (fatfs-volume-name fat))(newline)
  (display "Sector size (bytes): ")(display (fatfs-bytes/sector fat))(newline)
  (display "Cluster size (sectors): ")(display (fatfs-sectors/cluster fat))(newline)
  (display "Total clusters: ")(display (fatfs-total-clusters fat))(newline)
  (display "First FAT sector: ")(display (fatfs-first-FAT-sector fat))(newline)
  (display "First data sector: ")(display (fatfs-first-data-sector fat))(newline)
  (when (eqv? (fatfs-type fat) 'fat32)
    (display "Root directory cluster: ")(display (fatfs-root-directory-cluster fat))(newline))
  (display "Root directory entries: ")(display (fatfs-root-directory-entries fat))(newline)
)
