# first party package only
bash run.sh $GOPATH/src/$YOUR_REPO > darge.html
# with third party package
bash run_with_thirdparty.sh $GOPATH/src/$YOUR_REPO > darge.html
open darge.html
mo | |
*.html |
<!doctype html> | |
<meta charset="utf-8"> | |
<script src="https://d3js.org/d3.v4.min.js" charset="utf-8"></script> | |
<script src="https://dagrejs.github.io/project/dagre-d3/latest/dagre-d3.js"></script> | |
<style id="css"> | |
.clusters rect { | |
fill: #00ffd0; | |
stroke: #999; | |
stroke-width: 1.5px; | |
} | |
text { | |
font-weight: 300; | |
font-family: "Helvetica Neue", Helvetica, Arial, sans-serf; | |
font-size: 14px; | |
} | |
.node rect { | |
stroke: #999; | |
fill: #fff; | |
stroke-width: 1.5px; | |
} | |
.edgePath path { | |
stroke: #333; | |
stroke-width: 1.5px; | |
} | |
</style> | |
<svg id="svg-canvas"></svg> | |
<script id="js"> | |
// Create the input graph | |
var g = new dagreD3.graphlib.Graph({compound:true}) | |
.setGraph({rankdir:"LR"}) | |
.setDefaultEdgeLabel(function() { return {}; }); | |
//// Here we're setting the nodes | |
{{#NODES}} | |
{{.}} | |
{{/NODES}} | |
//// Set up edges, no special attributes. | |
{{#EDGES}} | |
{{.}} | |
{{/EDGES}} | |
g.nodes().forEach(function(v) { | |
var node = g.node(v); | |
// Round the corners of the nodes | |
node.rx = node.ry = 5; | |
}); | |
// Create the renderer | |
var render = new dagreD3.render(); | |
// Set up an SVG group so that we can translate the final graph. | |
var svg = d3.select("svg"), | |
svgGroup = svg.append("g"); | |
// Run the renderer. This is what draws the final graph. | |
render(d3.select("svg g"), g); | |
document.getElementById("svg-canvas").style.width = g.graph().width + 40; | |
svg.attr("height", g.graph().height + 80); | |
// Center the graph | |
svgGroup.attr("transform", "translate(20, 40)"); | |
</script> |
export GO111MODULE=on | |
BASE_DIR=$(pwd) | |
cd $1 | |
BASE_HOST=$(basename $(dirname $(dirname $(pwd)))) | |
BASE_ORG=$(basename $(dirname $(pwd))) | |
BASE_REPO=$(basename $(pwd)) | |
export NODES=() | |
export EDGES=() | |
while read package | |
do | |
node=$(echo "g.setNode('$package', {label: '$package'});" | sed -e "s:$BASE_HOST/$BASE_ORG/$BASE_REPO/::g") | |
NODES+=( $node ) | |
cd $GOPATH/src/$package | |
while read p | |
do | |
edge=$(echo "g.setEdge('$package','$p');" | sed -e "s:$BASE_HOST/$BASE_ORG/$BASE_REPO/::g") | |
EDGES+=($edge) | |
done < <(go list -f '{{join .Imports "\n"}}' | grep $BASE_REPO | grep -v vendor) | |
done < <(go list ./...) | |
cd $BASE_DIR | |
if [ ! -f $BASE_DIR/mo ]; then | |
curl https://raw.githubusercontent.com/tests-always-included/mo/master/mo > $BASE_DIR/mo | |
fi | |
. $BASE_DIR/mo | |
mo darge.html.mo |
export GO111MODULE=on | |
BASE_DIR=$(pwd) | |
cd $1 | |
BASE_HOST=$(basename $(dirname $(dirname $(pwd)))) | |
BASE_ORG=$(basename $(dirname $(pwd))) | |
BASE_REPO=$(basename $(pwd)) | |
export NODES=() | |
export EDGES=() | |
while read package | |
do | |
node=$(echo "g.setNode('$package', {label: '$package'});") | |
NODES+=( $node ) | |
cd $GOPATH/src/$package | |
while read p | |
do | |
NODES+=( $(echo "g.setNode('$p', {label: '$p'});")) | |
edge=$(echo "g.setEdge('$package','$p');") | |
EDGES+=($edge) | |
done < <(go list -f '{{join .Imports "\n"}}' | xargs go list -f '{{if not .Standard}}{{.ImportPath}}{{end}}') | |
done < <(go list ./...) | |
cd $BASE_DIR | |
if [ ! -f $BASE_DIR/mo ]; then | |
curl https://raw.githubusercontent.com/tests-always-included/mo/master/mo > $BASE_DIR/mo | |
fi | |
. $BASE_DIR/mo | |
mo darge.html.mo |