()
| 124 | } |
| 125 | |
| 126 | func initSecretStore() error { |
| 127 | lock.Lock() |
| 128 | defer lock.Unlock() |
| 129 | if initialized { |
| 130 | return nil |
| 131 | } |
| 132 | |
| 133 | now := time.Now() |
| 134 | if !lastInitTryTime.IsZero() && now.Sub(lastInitTryTime) < InitRetryMs*time.Millisecond { |
| 135 | return lastInitErr |
| 136 | } |
| 137 | |
| 138 | lastInitTryTime = now |
| 139 | loadedSecrets, err := readSecretsFromFile() |
| 140 | if err != nil { |
| 141 | lastInitErr = err |
| 142 | return err |
| 143 | } |
| 144 | secrets = loadedSecrets |
| 145 | |
| 146 | writeRequestChan = make(chan struct{}, 1) |
| 147 | initialized = true |
| 148 | lastInitErr = nil |
| 149 | go writerLoop() |
| 150 | return nil |
| 151 | } |
| 152 | |
| 153 | func writerLoop() { |
| 154 | var timer *time.Timer |
no test coverage detected