github.com/elastic/gosigar@v0.14.3/examples/df/df.go (about)

     1  // Copyright (c) 2012 VMware, Inc.
     2  
     3  package main
     4  
     5  import (
     6  	"fmt"
     7  	"os"
     8  
     9  	"github.com/elastic/gosigar"
    10  )
    11  
    12  const output_format = "%-15s %4s %4s %5s %4s %-15s\n"
    13  
    14  func main() {
    15  	fslist := gosigar.FileSystemList{}
    16  	err := fslist.Get()
    17  	if err != nil {
    18  		fmt.Printf("Failed to get list of filesystems: %v", err)
    19  		os.Exit(-1)
    20  	}
    21  
    22  	fmt.Fprintf(os.Stdout, output_format,
    23  		"Filesystem", "Size", "Used", "Avail", "Use%", "Mounted on")
    24  
    25  	for _, fs := range fslist.List {
    26  		dir_name := fs.DirName
    27  
    28  		usage := gosigar.FileSystemUsage{}
    29  
    30  		usage.Get(dir_name)
    31  
    32  		fmt.Fprintf(os.Stdout, output_format,
    33  			fs.DevName,
    34  			gosigar.FormatSize(usage.Total),
    35  			gosigar.FormatSize(usage.Used),
    36  			gosigar.FormatSize(usage.Avail),
    37  			gosigar.FormatPercent(usage.UsePercent()),
    38  			dir_name)
    39  	}
    40  }