|
|
@ -53,6 +53,7 @@ type FileNode struct { |
|
|
|
Config *configCollect |
|
|
|
Ent *DirEnt |
|
|
|
Elem FileElem |
|
|
|
AbsolutePath string |
|
|
|
} |
|
|
|
|
|
|
|
type RepoFs struct { |
|
|
@ -70,6 +71,7 @@ func NewRepoFs(config *configCollect) *RepoFs { |
|
|
|
rf.EntryNode.AbsolutePath = "/" |
|
|
|
rf.EntryNode.Files = make([]*FileNode,0) |
|
|
|
rf.EntryNode.Folders = make([]*DirNode,0) |
|
|
|
rf.EntryNode.Config = config |
|
|
|
|
|
|
|
return rf |
|
|
|
} |
|
|
@ -90,10 +92,15 @@ func (dn* DirNode) String() string { |
|
|
|
return fmt.Sprintf("%v %v", dn.Ent.Id[:6], dn.AbsolutePath) |
|
|
|
} |
|
|
|
|
|
|
|
func (fn* FileNode) String() string { |
|
|
|
return fmt.Sprintf("%v %v", fn.Ent.Id[:6], fn.AbsolutePath) |
|
|
|
} |
|
|
|
|
|
|
|
func NewFileNode(parent *DirNode, ent *DirEnt) *FileNode { |
|
|
|
fn := new (FileNode) |
|
|
|
fn.Ent = ent |
|
|
|
fn.Config = parent.Config |
|
|
|
fn.AbsolutePath = parent.AbsolutePath + ent.Name |
|
|
|
|
|
|
|
return fn |
|
|
|
} |
|
|
@ -144,20 +151,25 @@ const ( |
|
|
|
ExpandAll |
|
|
|
) |
|
|
|
|
|
|
|
func (dn* DirNode) Expand(strat ExpandStrat) { |
|
|
|
for _, cdn := range dn.Folders { |
|
|
|
cdn.Parse() |
|
|
|
} |
|
|
|
func (dn* DirNode) Walk(strat ExpandStrat, depth int) { |
|
|
|
qNode := []*DirNode{dn} |
|
|
|
for len(qNode) > 0 && depth != 0{ |
|
|
|
if depth > 0 { depth = depth - 1 } |
|
|
|
|
|
|
|
if strat == ExpandAll { |
|
|
|
for _, cfn := range dn.Files { |
|
|
|
cfn.Parse() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
cursor := qNode[0] |
|
|
|
qNode = qNode[1:] |
|
|
|
cursor.Parse() |
|
|
|
|
|
|
|
func (dn* DirNode) Walk(strat ExpandStrat) { |
|
|
|
for _, ndn := range dn.Folders { |
|
|
|
qNode = append(qNode, ndn) |
|
|
|
} |
|
|
|
|
|
|
|
if ExpandAll == strat { |
|
|
|
for _, nfn := range dn.Files { |
|
|
|
nfn.Parse() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/*func (rf* RepoFs) Walk() { |
|
|
|