github.com/devstream-io/devstream@v0.13.3/internal/pkg/scaffold/tree/tree.go (about)

     1  package tree
     2  
     3  import "fmt"
     4  
     5  type TreeNode struct {
     6  	Name     string
     7  	IsDir    bool
     8  	Children []*TreeNode
     9  }
    10  
    11  func NewTreeNode(name string, isDir bool) *TreeNode {
    12  	return &TreeNode{
    13  		Name:     name,
    14  		IsDir:    isDir,
    15  		Children: []*TreeNode{},
    16  	}
    17  }
    18  
    19  func (t *TreeNode) AddChild(child *TreeNode) {
    20  	t.Children = append(t.Children, child)
    21  }
    22  
    23  func (t *TreeNode) PrintTree(prefix string) {
    24  	if t.IsDir {
    25  		fmt.Println(prefix + t.Name + "/")
    26  	} else {
    27  		fmt.Println(prefix + t.Name)
    28  	}
    29  	for _, child := range t.Children {
    30  		child.PrintTree(prefix + "    ")
    31  	}
    32  }