|
|
@ -10,13 +10,13 @@ namespace DockerGenerator |
|
|
|
{ |
|
|
|
public class DockerComposeDefinition |
|
|
|
{ |
|
|
|
public List<string> Fragments |
|
|
|
public HashSet<string> Fragments |
|
|
|
{ |
|
|
|
get; set; |
|
|
|
} |
|
|
|
private string _Name; |
|
|
|
|
|
|
|
public DockerComposeDefinition(string name, List<string> fragments) |
|
|
|
public DockerComposeDefinition(string name, HashSet<string> fragments) |
|
|
|
{ |
|
|
|
Fragments = fragments; |
|
|
|
_Name = name; |
|
|
@ -55,6 +55,27 @@ namespace DockerGenerator |
|
|
|
Console.WriteLine($"\t{fragment}"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var deps = new HashSet<string>(); |
|
|
|
foreach (var doc in Fragments.Select(f => ParseDocument(f))) |
|
|
|
{ |
|
|
|
GetDeps(deps, doc); |
|
|
|
} |
|
|
|
|
|
|
|
foreach (var fragment in deps.Where(d => Fragments.Add(d))) |
|
|
|
{ |
|
|
|
var fragmentPath = GetFragmentLocation(fragment); |
|
|
|
if (!File.Exists(fragmentPath)) |
|
|
|
{ |
|
|
|
Console.WriteLine($"\t{fragment} not found in {fragmentPath}, ignoring..."); |
|
|
|
Fragments.Remove(fragment); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Console.WriteLine($"\t{fragment}"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
var services = new List<KeyValuePair<YamlNode, YamlNode>>(); |
|
|
|
var volumes = new List<KeyValuePair<YamlNode, YamlNode>>(); |
|
|
|
var networks = new List<KeyValuePair<YamlNode, YamlNode>>(); |
|
|
@ -89,6 +110,11 @@ namespace DockerGenerator |
|
|
|
Console.WriteLine(); |
|
|
|
} |
|
|
|
|
|
|
|
private void GetDeps(HashSet<string> deps, YamlMappingNode doc) |
|
|
|
{ |
|
|
|
throw new NotImplementedException(); |
|
|
|
} |
|
|
|
|
|
|
|
private KeyValuePair<YamlNode, YamlNode>[] Merge(List<KeyValuePair<YamlNode, YamlNode>> services) |
|
|
|
{ |
|
|
|
return services |
|
|
|