github.com/yaegashi/msgraph.go@v0.1.4/gen/generator_clean.go (about)

     1  package main
     2  
     3  import (
     4  	"log"
     5  	"os"
     6  	"path/filepath"
     7  	"strings"
     8  )
     9  
    10  func (g *Generator) Clean() error {
    11  	log.Printf("Creating directory %s", g.Out)
    12  	err := os.MkdirAll(filepath.Dir(g.Out), 0755)
    13  	if err != nil {
    14  		return err
    15  	}
    16  	dir, err := os.Open(g.Out)
    17  	if err != nil {
    18  		return err
    19  	}
    20  	files, err := dir.Readdir(-1)
    21  	if err != nil {
    22  		return err
    23  	}
    24  	for _, file := range files {
    25  		if file.IsDir() {
    26  			continue
    27  		}
    28  		if !strings.HasSuffix(file.Name(), ".go") {
    29  			continue
    30  		}
    31  		if strings.HasSuffix(file.Name(), "_test.go") {
    32  			continue
    33  		}
    34  		path := filepath.Join(g.Out, file.Name())
    35  		log.Printf("Removing %s", path)
    36  		err := os.Remove(path)
    37  		if err != nil {
    38  			return err
    39  		}
    40  	}
    41  	return nil
    42  }