1package main
2
3import "fmt"
4
5type DiskDetails struct {
6 Type, Total, Used, Free string
7}
8
9func sizeToString(size uint64) (str string) {
10 b := float64(size)
11
12 switch {
13 case size >= 1<<60:
14 str = fmt.Sprintf("%.1fE", b/(1<<60))
15 case size >= 1<<50:
16 str = fmt.Sprintf("%.1fP", b/(1<<50))
17 case size >= 1<<40:
18 str = fmt.Sprintf("%.1fT", b/(1<<40))
19 case size >= 1<<30:
20 str = fmt.Sprintf("%.1fG", b/(1<<30))
21 case size >= 1<<20:
22 str = fmt.Sprintf("%.1fM", b/(1<<20))
23 case size >= 1<<10:
24 str = fmt.Sprintf("%.1fK", b/(1<<10))
25 default:
26 str = fmt.Sprintf("%dB", size)
27 }
28 return
29}
30
31var fsTypeMap = map[int64]string{
32 0xEF53: "EXT2 / EXT3 / EXT4",
33 0x58465342: "XFS",
34 0x9123683E: "Btrfs",
35 0x52654973: "ReiserFS",
36 0x5346544E: "NTFS",
37 0xF995E849: "ZFS",
38 0x2FC12FC1: "ZFS (alt)",
39 0x65735546: "FUSE",
40 0x01021994: "TMPFS",
41 0x28CD3D45: "CRAMFS",
42 0x73717368: "SquashFS",
43 0x4244: "HFS",
44 0x482B: "HFS+",
45 0x41504653: "APFS",
46 0x6969: "NFS",
47 0xFF534D42: "CIFS / SMB",
48 0x4D44: "FAT",
49 0x4006: "FAT32",
50 0xE0F5E1E2: "EXFAT",
51 0x9660: "ISO 9660",
52 0x15013346: "UDF",
53}