Skip to content

Commit ba648fa

Browse files
committed
feat: get type from field's type
1 parent ae755db commit ba648fa

File tree

3 files changed

+17
-3
lines changed

3 files changed

+17
-3
lines changed

drivers/local/meta.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package local
33
import "github.com/alist-org/alist/v3/internal/driver"
44

55
type Addition struct {
6-
RootFolder string `json:"root_folder" type:"string" help:"root folder path" default:"/"`
6+
RootFolder string `json:"root_folder" help:"root folder path" default:"/"`
77
}
88

99
var config = driver.Config{

internal/driver/addition.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,15 @@ package driver
22

33
type Additional interface{}
44

5+
type Select string
6+
7+
const (
8+
TypeString = "string"
9+
TypeSelect = "select"
10+
TypeBool = "bool"
11+
TypeText = "text"
12+
)
13+
514
type Item struct {
615
Name string `json:"name"`
716
Type string `json:"type"`

internal/driver/manage.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package driver
33
import (
44
log "github.com/sirupsen/logrus"
55
"reflect"
6+
"strings"
67
)
78

89
type New func() Driver
@@ -73,19 +74,23 @@ func getMainItems(config Config) []Item {
7374
func getAdditionalItems(t reflect.Type) []Item {
7475
var items []Item
7576
for i := 0; i < t.NumField(); i++ {
76-
tag := t.Field(i).Tag
77+
field := t.Field(i)
78+
tag := field.Tag
7779
ignore, ok := tag.Lookup("ignore")
7880
if !ok || ignore == "false" {
7981
continue
8082
}
8183
item := Item{
8284
Name: tag.Get("json"),
83-
Type: tag.Get("type"),
85+
Type: strings.ToLower(field.Name),
8486
Default: tag.Get("default"),
8587
Values: tag.Get("values"),
8688
Required: tag.Get("required") == "true",
8789
Help: tag.Get("help"),
8890
}
91+
if tag.Get("type") != "" {
92+
item.Type = tag.Get("type")
93+
}
8994
// set default type to string
9095
if item.Type == "" {
9196
item.Type = "string"

0 commit comments

Comments
 (0)