github.com/yoheimuta/protolint@v0.49.8-0.20240515023657-4ecaebb7575d/internal/linter/config/yamlExternalConfigProvider.go (about)

     1  package config
     2  
     3  import (
     4  	yaml "gopkg.in/yaml.v2"
     5  )
     6  
     7  const (
     8  	externalConfigFileName       = ".protolint"
     9  	externalConfigFileName2      = "protolint"
    10  	externalConfigFileExtension  = ".yaml"
    11  	externalConfigFileExtension2 = ".yml"
    12  )
    13  
    14  type yamlConfigLoader struct {
    15  	filePath string
    16  }
    17  
    18  func (y yamlConfigLoader) LoadExternalConfig() (*ExternalConfig, error) {
    19  	data, err := loadFileContent(y.filePath)
    20  	if err != nil {
    21  		return nil, err
    22  	}
    23  
    24  	var config ExternalConfig
    25  
    26  	if err := yaml.UnmarshalStrict(data, &config); err != nil {
    27  		return nil, err
    28  	}
    29  
    30  	config.SourcePath = y.filePath
    31  
    32  	return &config, nil
    33  }