func WriteFile(filename string, data []byte, perm ...os.FileMode) error {
	return goutil.WriteFile(filename, data, perm...)
}
WriteFile write file, and automatically creates the directory if necessary.
NOTE:
If perm is empty, automatically determine the file permissions based on extension.
package tools
import (
	"bytes"
	"errors"
	"go/ast"
	"go/token"
	"io"
	"io/ioutil"
	"os"
	"path/filepath"
	"regexp"
	"strings"
	"github.com/henrylee2cn/aster/internal/imports"
	"github.com/henrylee2cn/goutil"
)
func MkdirAll(path string, perm ...os.FileMode) error {
	return goutil.MkdirAll(path, perm...)
}