func Execute() {
	if err := CorefileTool(os.Stdout).Execute(); err != nil {
		fmt.Println(err)
		os.Exit(1)
	}
}
Execute adds all child commands to the root command and sets flags appropriately.
package cmd
import (
	"fmt"
	"io"
	"io/ioutil"
	"os"
	"github.com/lithammer/dedent"
	"github.com/spf13/cobra"
)
func CorefileTool(out io.Writer) *cobra.Command {
	rootCmd := &cobra.Command{
		Use:   "corefile-tool",
		Short: "A brief description of your application",
		Long: dedent.Dedent(`
			    ┌──────────────────────────────────────────────────────────┐
			    │ CoreDNS Migration Tool                                   │
			    │ Easily Migrate your Corefile                             │
			    │                                                          │
			    │ Please give us feedback at:                              │
			    │ https: 
			    └──────────────────────────────────────────────────────────┘
		`),
	}
	rootCmd.AddCommand(NewMigrateCmd(out))
	rootCmd.AddCommand(NewDowngradeCmd(out))
	rootCmd.AddCommand(NewDefaultCmd(out))
	rootCmd.AddCommand(NewDeprecatedCmd(out))
	rootCmd.AddCommand(NewUnsupportedCmd(out))
	rootCmd.AddCommand(NewValidVersionsCmd(out))
	rootCmd.AddCommand(NewReleasedCmd(out))
	return rootCmd
}