script.go 558 B

12345678910111213141516171819202122
  1. //go:build with_script
  2. package script
  3. import (
  4. "context"
  5. "github.com/sagernet/sing-box/adapter"
  6. C "github.com/sagernet/sing-box/constant"
  7. "github.com/sagernet/sing-box/option"
  8. E "github.com/sagernet/sing/common/exceptions"
  9. "github.com/sagernet/sing/common/logger"
  10. )
  11. func NewScript(ctx context.Context, logger logger.ContextLogger, options option.Script) (adapter.Script, error) {
  12. switch options.Type {
  13. case C.ScriptTypeSurge:
  14. return NewSurgeScript(ctx, logger, options)
  15. default:
  16. return nil, E.New("unknown script type: ", options.Type)
  17. }
  18. }