Files
dns-failover/bind.go

28 lines
460 B
Go

package main
import (
"fmt"
"os"
"os/exec"
)
func SwitchBindConfig(source, target string) error {
input, err := os.ReadFile(source)
if err != nil {
return fmt.Errorf("read source config: %w", err)
}
err = os.WriteFile(target, input, 0o644)
if err != nil {
return fmt.Errorf("write active config: %w", err)
}
cmd := exec.Command("rndc", "reload")
err = cmd.Run()
if err != nil {
return fmt.Errorf("reload bind: %w", err)
}
return nil
}