local.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package functions
  2. import (
  3. "io/ioutil"
  4. "os"
  5. )
  6. func FileExists(f string) bool {
  7. info, err := os.Stat(f)
  8. if os.IsNotExist(err) {
  9. return false
  10. }
  11. return !info.IsDir()
  12. }
  13. func SetDNSDir() error {
  14. dir, err := os.Getwd()
  15. if err != nil {
  16. return err
  17. }
  18. _, err = os.Stat(dir + "/config/dnsconfig")
  19. if os.IsNotExist(err) {
  20. os.Mkdir(dir+"/config/dnsconfig", 0744)
  21. } else if err != nil {
  22. PrintUserLog("", "couldnt find or create /config/dnsconfig", 0)
  23. return err
  24. }
  25. _, err = os.Stat(dir + "/config/dnsconfig/Corefile")
  26. if os.IsNotExist(err) {
  27. err = SetCorefile(".")
  28. if err != nil {
  29. PrintUserLog("", err.Error(), 0)
  30. }
  31. }
  32. _, err = os.Stat(dir + "/config/dnsconfig/netmaker.hosts")
  33. if os.IsNotExist(err) {
  34. _, err = os.Create(dir + "/config/dnsconfig/netmaker.hosts")
  35. if err != nil {
  36. PrintUserLog("", err.Error(), 0)
  37. }
  38. }
  39. return nil
  40. }
  41. func SetCorefile(domains string) error {
  42. dir, err := os.Getwd()
  43. if err != nil {
  44. return err
  45. }
  46. _, err = os.Stat(dir + "/config/dnsconfig")
  47. if os.IsNotExist(err) {
  48. os.Mkdir(dir+"/config/dnsconfig", 744)
  49. } else if err != nil {
  50. PrintUserLog("", "couldnt find or create /config/dnsconfig", 0)
  51. return err
  52. }
  53. corefile := domains + ` {
  54. reload 15s
  55. hosts /root/dnsconfig/netmaker.hosts {
  56. fallthrough
  57. }
  58. forward . 8.8.8.8 8.8.4.4
  59. log
  60. }
  61. `
  62. corebytes := []byte(corefile)
  63. err = ioutil.WriteFile(dir+"/config/dnsconfig/Corefile", corebytes, 0644)
  64. if err != nil {
  65. return err
  66. }
  67. return err
  68. }