2017-02-13 135 views
1

我將嘗試創建一個圖表,演示基於源代碼管理中的url的api依賴關係。爲此,我使用powershell克隆github中的所有repo,然後遍歷Web Config和Appsettings文件中具有相關信息的文件。通過這樣做,我覺得對我來說,最好的辦法是讓回購的名字:如何使用列表使用powershell繪製圖表

Write-Host "Repo: "$repo.name 

然後我遍歷Web配置的獲取列表。

$WebReleaseConfig = "Web.Release.config" 

foreach($repo in $repos) { 
    $repo 
    $name = $repo.Name 
    $path = C:\Users\cd\ApiDependencies\$name 

    if(Test-Path -Path C:\Users\cd\ApiDependencies) { 
     $config = Get-ChildItem -Path $WebReleaseConfig -Recurse 
     [xml]$xml = Get-Content $config 

     $xmlList = @() 
     $xmlList = $xmlList + 
        ($xml.SelectNodes('//add').Value -like '*.co.uk*') + 
        ($xml.SelectNodes('//add').Value -like '*.com/*') 

     Write-Host "The List contains" 
     $xmlList  
    } 
} 

該列表將包含類似這樣的信息:

http://applications.c 
http://auth.c 
https://clearscore.c.co.uk/ 

我的問題是,這份名單將會覆蓋作爲有多個項目,我需要從這些信息創建一個圖無論如何,所以我認爲最好是創建一個圖表,將回購名稱中的箭頭繪製到列表中的每個項目。然後這會更新每個添加回購的圖表,一些回購也會有箭頭到達他們自己列表中的相同項目。我已經嘗試過Mermaid文檔,所以使用Javascript,但是這並不是一個好的方法來做到這一點,因爲我覆蓋數據,它似乎更習慣於硬編碼數據。我怎樣才能正確地做到這一點?

輸出會是什麼樣子:

a --> 1 
a --> 2 
a --> 3 
b --> 2 
b --> 4 
c --> 1 

回答

0

我不明白你期待什麼樣的輸出。但是你要作爲最終輸出什麼,我想你需要輸出類似

projectA-->projectB 
projectA-->projectJ 
projectB-->projectD 
.... 

我的建議是使用ImageMagic的顯示工具。你可以看到這是如何在一個班輪使用:

lsmod | awk 'BEGIN{print "digraph{"}{split($4, a, ","); for (i in a) print $1, "->", a[i]}END{print "}"}'|display 

是的,這是UNIX shell腳本,但這個想法是寫類似:

digraph{ 
    node1 -> node2 
    node1 -> node3 
    node2 -> node6 
} 

然後讓顯示器做休息的工作

+0

它會像'a - > 1,a - > 2,a - > 3,b - > 2,b - > 4,c - > 1等。 –