1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-12-21 09:36:34 -05:00

Feat: add JSONC support to v5 configuration

This commit is contained in:
秋のかえで 2022-05-09 23:28:34 +08:00 committed by Xiaokang Wang (Shelikhoo)
parent 5d3915c751
commit 28d197b6f3

View File

@ -7,6 +7,7 @@ import (
"github.com/v2fly/v2ray-core/v5/common"
"github.com/v2fly/v2ray-core/v5/common/buf"
"github.com/v2fly/v2ray-core/v5/common/cmdarg"
"github.com/v2fly/v2ray-core/v5/infra/conf/json"
)
const jsonV5 = "jsonv5"
@ -14,7 +15,7 @@ const jsonV5 = "jsonv5"
func init() {
common.Must(core.RegisterConfigLoader(&core.ConfigFormat{
Name: []string{jsonV5},
Extension: []string{".v5.json"},
Extension: []string{".v5.json", ".v5.jsonc"},
Loader: func(input interface{}) (*core.Config, error) {
switch v := input.(type) {
case string:
@ -22,13 +23,17 @@ func init() {
if err != nil {
return nil, err
}
data, err := buf.ReadAllToBytes(r)
data, err := buf.ReadAllToBytes(&json.Reader{
Reader: r,
})
if err != nil {
return nil, err
}
return loadJSONConfig(data)
case io.Reader:
data, err := buf.ReadAllToBytes(v)
data, err := buf.ReadAllToBytes(&json.Reader{
Reader: v,
})
if err != nil {
return nil, err
}