local.go 967 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package functions
  2. import (
  3. "fmt"
  4. "io/ioutil"
  5. "log"
  6. "os"
  7. )
  8. func FileExists(f string) bool {
  9. info, err := os.Stat(f)
  10. if os.IsNotExist(err) {
  11. return false
  12. }
  13. return !info.IsDir()
  14. }
  15. func SetCorefile(domains string) error {
  16. //does not work when executing tests
  17. //dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
  18. //if err != nil {
  19. // return err
  20. //}
  21. dir, err := os.Getwd()
  22. if err != nil {
  23. return err
  24. }
  25. _, err = os.Stat(dir + "/config/dnsconfig")
  26. if os.IsNotExist(err) {
  27. os.Mkdir(dir+"/config/dnsconfig", 744)
  28. } else if err != nil {
  29. fmt.Println("couldnt find or create /config/dnsconfig")
  30. return err
  31. }
  32. corefile := domains + ` {
  33. reload 15s
  34. hosts /root/dnsconfig/netmaker.hosts {
  35. fallthrough
  36. }
  37. forward . 8.8.8.8 8.8.4.4
  38. log
  39. }
  40. `
  41. corebytes := []byte(corefile)
  42. err = ioutil.WriteFile(dir+"/config/dnsconfig/Corefile", corebytes, 0644)
  43. if err != nil {
  44. log.Println(err)
  45. log.Println("")
  46. return err
  47. }
  48. return err
  49. }