forked from 117503445/GoWebDAV
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.go
More file actions
67 lines (53 loc) · 1.58 KB
/
Copy pathconfig.go
File metadata and controls
67 lines (53 loc) · 1.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package main
import (
"fmt"
"os"
"github.com/spf13/pflag"
"github.com/spf13/viper"
)
type Config struct {
dav string
}
func mustMkdirAll(path string) {
err := os.MkdirAll(path, os.ModePerm)
if err != nil {
panic(err)
}
}
func mustWriteFile(path string, content string) {
err := os.WriteFile(path, []byte(content), 0644)
if err != nil {
panic(err)
}
}
// prepareQuickStart create dirs and files for quickstart, and return quickstart dav
func prepareQuickStart() (dav string) {
dav = "/public-writable,./data/public-writable,null,null,false;/public-readonly,./data/public-readonly,null,null,true;/private-writable,./data/private-writable,user1,pass1,false"
if _, err := os.Stat("./data"); os.IsNotExist(err) {
fmt.Println("creating directories and files for quickstart")
mustMkdirAll("./data/public-writable")
mustWriteFile("./data/public-writable/1.txt", "This is the content of 1.txt")
mustMkdirAll("./data/public-readonly")
mustWriteFile("./data/public-readonly/2.txt", "This is the content of 2.txt")
mustMkdirAll("./data/private-writable")
mustWriteFile("./data/private-writable/3.txt", "This is the content of 3.txt")
}
return
}
func (config *Config) Load() {
pflag.String("dav", "", "like /dav1,./TestDir1,user1,pass1,false;/dav2,./TestDir2,user2,pass2,false")
pflag.Parse()
err := viper.BindPFlags(pflag.CommandLine)
if err != nil {
fmt.Println(err)
}
err = viper.ReadInConfig()
if err != nil {
fmt.Println(err)
}
config.dav = viper.GetString("dav")
if config.dav == "" {
config.dav = prepareQuickStart()
}
}
var AppConfig *Config = &Config{}