| 260 | } |
| 261 | |
| 262 | func (t *treeCmd) countDependenciesRecursive(info *portInfo, visited map[string]bool, depCount *int, devDepCount *int) { |
| 263 | // Skip root node. |
| 264 | if info.depth == 0 { |
| 265 | for _, nameVersion := range info.depedencies { |
| 266 | t.countDependenciesRecursive(nameVersion, visited, depCount, devDepCount) |
| 267 | } |
| 268 | for _, nameVersion := range info.devDependencies { |
| 269 | t.countDependenciesRecursive(nameVersion, visited, depCount, devDepCount) |
| 270 | } |
| 271 | return |
| 272 | } |
| 273 | |
| 274 | // Check if already visited. |
| 275 | if visited[info.nameVersion] { |
| 276 | return |
| 277 | } |
| 278 | visited[info.nameVersion] = true |
| 279 | |
| 280 | // Count this dependency. |
| 281 | if info.devDep { |
| 282 | *devDepCount++ |
| 283 | } else { |
| 284 | *depCount++ |
| 285 | } |
| 286 | |
| 287 | // Recursively count children. |
| 288 | for _, child := range info.depedencies { |
| 289 | t.countDependenciesRecursive(child, visited, depCount, devDepCount) |
| 290 | } |
| 291 | for _, child := range info.devDependencies { |
| 292 | t.countDependenciesRecursive(child, visited, depCount, devDepCount) |
| 293 | } |
| 294 | } |
| 295 | |
| 296 | func (t *treeCmd) printTreeWithPrefix(info *portInfo, prefix string, isLast bool) { |
| 297 | var branch string |