MCPcopy Create free account
hub / github.com/XmirrorSecurity/OpenSCA-cli / newTreeNode

Function newTreeNode

cmd/ui/ui.go:172–247  ·  view source on GitHub ↗
(d *detail.DepDetailGraph)

Source from the content-addressed store, hash-verified

170}
171
172func newTreeNode(d *detail.DepDetailGraph) *tview.TreeNode {
173
174 // 组件信息文本
175 dev := ""
176 if d.Develop {
177 dev = "<dev>"
178 }
179 dep := fmt.Sprintf("%s:%s", d.Name, d.Version)
180 if d.Vendor != "" {
181 dep = fmt.Sprintf("%s:%s", d.Vendor, dep)
182 }
183 info := fmt.Sprintf("%s%s<%s>", dev, dep, d.Language)
184
185 // 当前节点
186 n := tview.NewTreeNode(info)
187
188 // 没有子依赖则不展开
189 if len(d.Children) == 0 {
190 n.SetExpanded(false)
191 }
192
193 n.SetColor(colorDep)
194 if len(d.Vulnerabilities) > 0 {
195 n.SetColor(colorVulDep)
196 }
197 if d.Develop {
198 n.SetColor(colorDevDep)
199 }
200
201 // 路径
202 if len(d.Paths) > 0 {
203 color := colorPath
204 if d.Develop {
205 color = colorDevDep
206 }
207 paths := tview.NewTreeNode("paths").SetColor(color).SetExpanded(!n.IsExpanded())
208 for _, p := range d.Paths {
209 paths.AddChild(tview.NewTreeNode(p).SetColor(color))
210 }
211 n.AddChild(paths)
212 }
213
214 // 许可证
215 if len(d.Licenses) > 0 {
216 color := colorLicense
217 if d.Develop {
218 color = colorDevDep
219 }
220 license := tview.NewTreeNode("license").SetColor(color).SetExpanded(!n.IsExpanded())
221 for _, lic := range d.Licenses {
222 license.AddChild(tview.NewTreeNode(lic.ShortName).SetColor(color))
223 }
224 n.AddChild(license)
225 }
226
227 // 漏洞
228 if len(d.Vulnerabilities) > 0 {
229 color := colorVul

Callers 1

DepTreeFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected