in tool/TeamCity.Docker/ScriptsGenerator.cs [31:69]
public void Generate(IGraph<IArtifact, Dependency> graph)
{
var groups = (
from node in graph.Nodes
let image = node.Value as Image
where image != null
group node by image.File.ImageId
into groupsByImageId
from groupByImageId in
from groupByImageId in groupsByImageId
let image = groupByImageId.Value as Image
where image != null
orderby image.File
group groupByImageId by image.File
group groupByImageId by groupsByImageId.Key)
.ToList();
foreach (var groupByImageId in groups)
{
foreach (var groupByFile in groupByImageId)
{
foreach (var node in groupByFile)
{
var image = (Image)node.Value;
switch (image.File.Platform.ToLowerInvariant())
{
case "windows":
AddScriptNode(graph, node, WindowsEndOfLine, string.Empty, ".cmd");
break;
case "linux":
AddScriptNode(graph, node, LinuxEndOfLine, "#!/bin/bash", ".sh");
AddScriptNode(graph, node, WindowsEndOfLine, string.Empty, ".cmd");
break;
}
}
}
}
}