/
githubmirror
/
origin
Обзор
Документация
Войти
/
githubmirror
/
origin
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
vendor/github.com/vmware/govmomi/vim25/debug/file.go
63 строки
1 KB
Justin Pierce
Add compat_otp package with openshift-tests-private (OTP) util implementations
11 авг 2025, 18:00
11 авг 2025, 18:00
80ac5c1
Код
Авторство
О чём код?
// © Broadcom. All Rights Reserved. // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. // SPDX-License-Identifier: Apache-2.0 package debug import ( "io" "os" "path" "sync" ) // FileProvider implements a debugging provider that creates a real file for // every call to NewFile. It maintains a list of all files that it creates, // such that it can close them when its Flush function is called. type FileProvider struct { Path string mu sync.Mutex files []*os.File } func (fp *FileProvider) NewFile(p string) io.WriteCloser { f, err := os.Create(path.Join(fp.Path, p)) if err != nil { panic(err) } fp.mu.Lock() defer fp.mu.Unlock() fp.files = append(fp.files, f) return NewFileWriterCloser(f, p) } func (fp *FileProvider) Flush() { fp.mu.Lock() defer fp.mu.Unlock() for _, f := range fp.files { f.Close() } } type FileWriterCloser struct { f *os.File p string } func NewFileWriterCloser(f *os.File, p string) *FileWriterCloser { return &FileWriterCloser{ f, p, } } func (fwc *FileWriterCloser) Write(p []byte) (n int, err error) { return fwc.f.Write(Scrub(p)) } func (fwc *FileWriterCloser) Close() error { return fwc.f.Close() }