2017-02-13 20 views
1

ソース管理のURLに基​​づいてAPIの依存関係を示す図を作成します。これを行うために、私はpowershellを使ってすべてのリポジトリをgithubにクローンしてから、Web Configとappsettingsファイルの関連情報を持つファイルをループします。リストを使用してpowershellを使用して図を描画する方法

Write-Host "Repo: "$repo.name 

とWeb設定のリストを取得して、その後Iループ:これを行うことによって、私は私のために最善のアプローチは、レポの名前を取得することだと思います。私が持っている問題は、このリストは、複数のプロジェクトがあると上書きしようとしていることであると私は、この情報からダイアグラムを作成する必要があります

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

$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  
    } 
} 

このリストには、このような情報が含まれていますとにかく、レポ名からリスト内の各項目に矢印を描くダイアグラムを作成するのが最善の方法だと思います。これにより、追加されたレポごとにダイアグラムが更新され、いくつかのレポは、矢印が自分のリスト内の同じアイテムに移動するようになります。私はマーメイドのドキュメントやJavascriptを試しましたが、これはデータを上書きするときにこれを行う良い方法が気に入らず、データをハードコードするのに多く使用されているようです。どのようにこれを正しく行うことができますか?私はあなたが期待している出力の正確にどのようなものを理解していなかった

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

答えて

0

出力は次のようになります。しかし、あなたが最終的な出力として何をしたいのために、私はあなたが出力に私の提案は、ImageMagicの表示ユーティリティを使用することです

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

ようなものが必要だと思います。あなたは、これはワンライナーに使用されているかを確認することができます

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

はい、それはUNIXシェルスクリプトですが、考え方は同じような何かを書くことです:

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

次に表示が残りをやらせます

+0

"a - > 1、a - > 2、a - > 3、b - > 2、b - > 4、c - > 1などです。 –

関連する問題