1package authn 2 3import ( 4 "fmt" 5 "io/ioutil" 6 "os" 7 "time" 8) 9 10func waitForTextFile(fileName string, timeout <-chan time.Time) ([]byte, error) { 11 var ( 12 fileBytes []byte 13 err error 14 ) 15 16waiting_loop: 17 for { 18 select { 19 case <-timeout: 20 err = fmt.Errorf("Operation waitForTextFile timed out.") 21 break waiting_loop 22 default: 23 if _, err := os.Stat(fileName); os.IsNotExist(err) { 24 time.Sleep(100 * time.Millisecond) 25 } else { 26 fileBytes, err = ioutil.ReadFile(fileName) 27 break waiting_loop 28 } 29 } 30 } 31 32 return fileBytes, err 33} 34