package vfsflags import ( "fmt" "os" "strconv" "github.com/pkg/errors" ) // FileMode is a command line friendly os.FileMode type FileMode struct { Mode *os.FileMode } // String turns FileMode into a string func (x *FileMode) String() string { return fmt.Sprintf("0%3o", *x.Mode) } // Set a FileMode func (x *FileMode) Set(s string) error { i, err := strconv.ParseInt(s, 8, 64) if err != nil { return errors.Wrap(err, "Bad FileMode - must be octal digits") } *x.Mode = (os.FileMode)(i) return nil } // Type of the value func (x *FileMode) Type() string { return "FileMode" }