github.com/NeowayLabs/nash@v0.2.2-0.20200127205349-a227041ffd50/internal/sh/rfork_plan9.go (about) 1 // +build plan9 2 3 package sh 4 5 import ( 6 "fmt" 7 "syscall" 8 ) 9 10 func (sh *Shell) executeRfork(rfork *RforkNode) error { 11 return newError("Sorry. Plan9 rfork not implemented yet.") 12 } 13 14 // getflags converts to Plan9 flags 15 func getflags(flags string) (uintptr, error) { 16 var ( 17 pflags uintptr 18 ) 19 20 for i := 0; i < len(flags); i++ { 21 switch flags[i] { 22 case 'n': 23 pflags |= syscall.RFNAMEG 24 case 'N': 25 pflags |= syscall.RFCNAMEG 26 case 'e': 27 pflags |= syscall.RFENVG 28 case 'E': 29 pflags |= syscall.RFCENVG 30 case 's': 31 pflags |= syscall.RFNOTEG 32 case 'f': 33 pflags |= syscall.RFFDG 34 case 'F': 35 pflags |= syscall.RFCFDG 36 default: 37 return 0, fmt.Errorf("Wrong rfork flag: %c", flags[i]) 38 } 39 } 40 41 if pflags == 0 { 42 return 0, fmt.Errorf("Rfork requires some flag") 43 } 44 45 return pflags, nil 46 }