Expand statfs man page a little and include in build.bash

This commit is contained in:
Jakob Unterwurzacher 2019-09-08 15:50:05 +02:00
parent 92ae62f9cc
commit ed230379e7
3 changed files with 65 additions and 11 deletions

View File

@ -5,26 +5,78 @@
NAME
====
statfs - dump the statfs information for PATH to console in JSON format
statfs - dump the statfs(2) information for PATH to console in JSON format.
SYNOPSIS
========
#### Examine encrypted file/directory
statfs PATH
DESCRIPTION
===========
There are no options to this command.
The statfs(2) system call returns information about a mounted filesystem
in a `statfs_t` structure. This tool dumps this information in JSON format.
It is developed as part of gocryptfs and written in Go.
The `statfs_t` structure is architecture-dependent. On amd64 it looks like this:
```
type Statfs_t struct {
Type int64
Bsize int64
Blocks uint64
Bfree uint64
Bavail uint64
Files uint64
Ffree uint64
Fsid struct {
Val [2]int32
}
Namelen int64
Frsize int64
Flags int64
Spare [4]int64
}
```
See the statfs(2) man page for the meaning of these fields, and note
that the field names here are acc. to the Go `golang.org/x/sys/unix`
naming convention, and slightly different than in C.
EXAMPLES
========
Examine a directory entry:
Get the statfs(2) information for /tmp:
statfs myfs/mCXnISiv7nEmyc0glGuhTQ
```
$ statfs /tmp
{
"Type": 16914836,
"Bsize": 4096,
"Blocks": 3067428,
"Bfree": 3067411,
"Bavail": 3067411,
"Files": 3067428,
"Ffree": 3067381,
"Fsid": {
"Val": [
0,
0
]
},
"Namelen": 255,
"Frsize": 4096,
"Flags": 38,
"Spare": [
0,
0,
0,
0
]
}
```
SEE ALSO
========
gocryptfs(1) gocryptfs-xray(1)
statfs(2) gocryptfs(1)

View File

@ -87,10 +87,11 @@ if [[ -n ${LDFLAGS:-} ]] ; then
GO_LDFLAGS="$GO_LDFLAGS \"-extldflags=$LDFLAGS\""
fi
# Actual "go build" call
# Actual "go build" call for gocryptfs
go build "-ldflags=$GO_LDFLAGS" "-gcflags=$TRIM" "-asmflags=$TRIM" "$@"
# Additional binaries
(cd gocryptfs-xray; go build "-ldflags=$GO_LDFLAGS" "-gcflags=$TRIM" "-asmflags=$TRIM" "$@")
(cd contrib/statfs; go build "-ldflags=$GO_LDFLAGS" "-gcflags=$TRIM" "-asmflags=$TRIM" "$@")
./gocryptfs -version

View File

@ -5,7 +5,8 @@ import (
"flag"
"fmt"
"os"
"syscall"
"golang.org/x/sys/unix"
)
const (
@ -23,8 +24,8 @@ func main() {
flag.Usage()
}
path := flag.Arg(0)
var st syscall.Statfs_t
err := syscall.Statfs(path, &st)
var st unix.Statfs_t
err := unix.Statfs(path, &st)
if err != nil {
fmt.Fprintf(os.Stderr, "statfs syscall returned error: %v\n", err)
os.Exit(2)