summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/statfs/.gitignore1
-rw-r--r--contrib/statfs/statfs.go34
2 files changed, 35 insertions, 0 deletions
diff --git a/contrib/statfs/.gitignore b/contrib/statfs/.gitignore
new file mode 100644
index 0000000..1ad5baa
--- /dev/null
+++ b/contrib/statfs/.gitignore
@@ -0,0 +1 @@
+/statfs
diff --git a/contrib/statfs/statfs.go b/contrib/statfs/statfs.go
new file mode 100644
index 0000000..5dcbd07
--- /dev/null
+++ b/contrib/statfs/statfs.go
@@ -0,0 +1,34 @@
+package main
+
+import (
+ "encoding/json"
+ "flag"
+ "fmt"
+ "os"
+ "syscall"
+)
+
+const (
+ myName = "statfs"
+)
+
+func main() {
+ flag.Usage = func() {
+ fmt.Fprintf(os.Stderr, "Usage: %s PATH\n", myName)
+ fmt.Fprintf(os.Stderr, "Dump the statfs information for PATH to the console, JSON format.\n")
+ os.Exit(1)
+ }
+ flag.Parse()
+ if flag.NArg() != 1 {
+ flag.Usage()
+ }
+ path := flag.Arg(0)
+ var st syscall.Statfs_t
+ err := syscall.Statfs(path, &st)
+ if err != nil {
+ fmt.Fprintf(os.Stderr, "statfs syscall returned error: %v\n", err)
+ os.Exit(2)
+ }
+ jsn, _ := json.MarshalIndent(st, "", "\t")
+ fmt.Println(string(jsn))
+}