go once sync.Once
unc (c *ClusterFile) Process() (err error) {
if !fileutil.IsExist(c.path) {
return ErrClusterFileNotExists
}
c.once.Do(func() {
err = func() error {
clusterFileData, err := c.loadClusterFile()
if err != nil {
return err
}
logger.Debug("rendered Clusterfile: %+v", string(clusterFileData))
return c.decode(clusterFileData)
}()
})
return
}