lint.go 771 B

12345678910111213141516171819202122232425
  1. package conf
  2. import "github.com/xtls/xray-core/common/errors"
  3. type ConfigureFilePostProcessingStage interface {
  4. Process(conf *Config) error
  5. }
  6. var configureFilePostProcessingStages map[string]ConfigureFilePostProcessingStage
  7. func RegisterConfigureFilePostProcessingStage(name string, stage ConfigureFilePostProcessingStage) {
  8. if configureFilePostProcessingStages == nil {
  9. configureFilePostProcessingStages = make(map[string]ConfigureFilePostProcessingStage)
  10. }
  11. configureFilePostProcessingStages[name] = stage
  12. }
  13. func PostProcessConfigureFile(conf *Config) error {
  14. for k, v := range configureFilePostProcessingStages {
  15. if err := v.Process(conf); err != nil {
  16. return errors.New("Rejected by Postprocessing Stage ", k).AtError().Base(err)
  17. }
  18. }
  19. return nil
  20. }