debug_solaris.go

 1package internal
 2
 3import (
 4	"fmt"
 5	"os"
 6	"strings"
 7	"time"
 8
 9	"golang.org/x/sys/unix"
10)
11
12func Debug(name string, mask int32) {
13	names := []struct {
14		n string
15		m int32
16	}{
17		{"FILE_ACCESS", unix.FILE_ACCESS},
18		{"FILE_MODIFIED", unix.FILE_MODIFIED},
19		{"FILE_ATTRIB", unix.FILE_ATTRIB},
20		{"FILE_TRUNC", unix.FILE_TRUNC},
21		{"FILE_NOFOLLOW", unix.FILE_NOFOLLOW},
22		{"FILE_DELETE", unix.FILE_DELETE},
23		{"FILE_RENAME_TO", unix.FILE_RENAME_TO},
24		{"FILE_RENAME_FROM", unix.FILE_RENAME_FROM},
25		{"UNMOUNTED", unix.UNMOUNTED},
26		{"MOUNTEDOVER", unix.MOUNTEDOVER},
27		{"FILE_EXCEPTION", unix.FILE_EXCEPTION},
28	}
29
30	var (
31		l       []string
32		unknown = mask
33	)
34	for _, n := range names {
35		if mask&n.m == n.m {
36			l = append(l, n.n)
37			unknown ^= n.m
38		}
39	}
40	if unknown > 0 {
41		l = append(l, fmt.Sprintf("0x%x", unknown))
42	}
43	fmt.Fprintf(os.Stderr, "FSNOTIFY_DEBUG: %s  %10d:%-30s → %q\n",
44		time.Now().Format("15:04:05.000000000"), mask, strings.Join(l, " | "), name)
45}