netmaker/functions/local.go

75 lines
1.6 KiB
Go
Raw Normal View History

2021-05-05 05:36:55 +08:00
package functions
import (
"io/ioutil"
2021-05-10 01:31:50 +08:00
"os"
2021-05-05 05:36:55 +08:00
)
func FileExists(f string) bool {
2021-05-10 01:31:50 +08:00
info, err := os.Stat(f)
if os.IsNotExist(err) {
return false
}
return !info.IsDir()
2021-05-05 05:36:55 +08:00
}
func SetDNSDir() error {
dir, err := os.Getwd()
if err != nil {
return err
}
_, err = os.Stat(dir + "/config/dnsconfig")
if os.IsNotExist(err) {
2021-08-19 02:55:41 +08:00
os.Mkdir(dir+"/config/dnsconfig", 0744)
} else if err != nil {
2021-08-10 00:43:09 +08:00
PrintUserLog("","couldnt find or create /config/dnsconfig",0)
return err
}
2021-08-19 02:55:41 +08:00
_, err = os.Stat(dir + "/config/dnsconfig/Corefile")
if os.IsNotExist(err) {
2021-09-29 01:16:41 +08:00
err = SetCorefile(".")
2021-08-19 02:55:41 +08:00
if err != nil {
PrintUserLog("",err.Error(),0)
}
}
_, err = os.Stat(dir + "/config/dnsconfig/netmaker.hosts")
if os.IsNotExist(err) {
_, err = os.Create(dir + "/config/dnsconfig/netmaker.hosts")
if err != nil {
PrintUserLog("",err.Error(),0)
}
}
return nil
}
2021-05-05 08:44:23 +08:00
func SetCorefile(domains string) error {
2021-05-10 01:31:50 +08:00
dir, err := os.Getwd()
2021-05-05 05:36:55 +08:00
if err != nil {
2021-05-10 01:31:50 +08:00
return err
2021-05-05 05:36:55 +08:00
}
_, err = os.Stat(dir + "/config/dnsconfig")
2021-05-10 01:31:50 +08:00
if os.IsNotExist(err) {
os.Mkdir(dir+"/config/dnsconfig", 744)
} else if err != nil {
2021-08-10 00:43:09 +08:00
PrintUserLog("","couldnt find or create /config/dnsconfig",0)
2021-05-10 01:31:50 +08:00
return err
}
2021-05-05 05:36:55 +08:00
2021-05-10 01:31:50 +08:00
corefile := domains + ` {
2021-05-07 01:26:32 +08:00
reload 15s
2021-05-05 05:36:55 +08:00
hosts /root/dnsconfig/netmaker.hosts {
fallthrough
}
forward . 8.8.8.8 8.8.4.4
log
}
`
2021-05-10 01:31:50 +08:00
corebytes := []byte(corefile)
2021-05-05 05:36:55 +08:00
2021-05-10 01:31:50 +08:00
err = ioutil.WriteFile(dir+"/config/dnsconfig/Corefile", corebytes, 0644)
if err != nil {
return err
}
2021-05-05 05:36:55 +08:00
return err
}