github.com/rclone/rclone@v1.66.1-0.20240517100346-7b89735ae726/vfs/vfsflags/filemode.go (about) 1 package vfsflags 2 3 import ( 4 "fmt" 5 "os" 6 "strconv" 7 ) 8 9 // FileMode is a command line friendly os.FileMode 10 type FileMode struct { 11 Mode *os.FileMode 12 } 13 14 // String turns FileMode into a string 15 func (x *FileMode) String() string { 16 return fmt.Sprintf("0%3o", *x.Mode) 17 } 18 19 // Set a FileMode 20 func (x *FileMode) Set(s string) error { 21 i, err := strconv.ParseInt(s, 8, 32) 22 if err != nil { 23 return fmt.Errorf("bad FileMode - must be octal digits: %w", err) 24 } 25 *x.Mode = (os.FileMode)(i) 26 return nil 27 } 28 29 // Type of the value 30 func (x *FileMode) Type() string { 31 return "FileMode" 32 }