public void Generate()

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