aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/deprecated/setup.go38
1 files changed, 38 insertions, 0 deletions
diff --git a/plugin/deprecated/setup.go b/plugin/deprecated/setup.go
new file mode 100644
index 000000000..cf415c1ae
--- /dev/null
+++ b/plugin/deprecated/setup.go
@@ -0,0 +1,38 @@
+// Package deprecated is used when we deprecated plugin. In plugin.cfg just go from
+//
+// startup:github.com/mholt/caddy/startupshutdown
+//
+// To:
+//
+// startup:deprecated
+//
+// And things should work as expected. This means starting CoreDNS will fail with an error. We can only
+// point to the release notes to details what next steps a user should take. I.e. there is no way to add this
+// to the error generated.
+package deprecated
+
+import (
+ "errors"
+
+ "github.com/coredns/coredns/plugin"
+
+ "github.com/mholt/caddy"
+)
+
+// removed has the names of the plugins that need to error on startup.
+var removed = []string{"startup", "shutdown"}
+
+func setup(c *caddy.Controller) error {
+ c.Next()
+ x := c.Val()
+ return plugin.Error(x, errors.New("this plugin has been deprecated"))
+}
+
+func init() {
+ for _, plugin := range removed {
+ caddy.RegisterPlugin(plugin, caddy.Plugin{
+ ServerType: "dns",
+ Action: setup,
+ })
+ }
+}