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