github.com/Cloud-Foundations/Dominator@v0.3.4/cmd/filegen-server/register.go (about)

     1  package main
     2  
     3  import (
     4  	"os"
     5  	"path"
     6  
     7  	"github.com/Cloud-Foundations/Dominator/lib/filegen"
     8  )
     9  
    10  func registerSourceDirectory(manager *filegen.Manager, baseDir string,
    11  	myPathName string) error {
    12  	file, err := os.Open(path.Join(baseDir, myPathName))
    13  	if err != nil {
    14  		return err
    15  	}
    16  	names, err := file.Readdirnames(-1)
    17  	file.Close()
    18  	if err != nil {
    19  		return err
    20  	}
    21  	for _, name := range names {
    22  		filename := path.Join(myPathName, name)
    23  		pathname := path.Join(baseDir, filename)
    24  		fi, err := os.Lstat(pathname)
    25  		if err != nil {
    26  			return err
    27  		}
    28  		if fi.IsDir() {
    29  			if err := registerSourceDirectory(manager, baseDir,
    30  				filename); err != nil {
    31  				return err
    32  			}
    33  		} else if fi.Mode().IsRegular() {
    34  			manager.RegisterFileForPath(filename, pathname)
    35  		}
    36  	}
    37  	return nil
    38  }