static IEnumerable <SrcPackage> CreatePackageList( string name, string path, IEnumerable <SrcPackage> packageListConfig) { var firstPackage = packageListConfig.First(); var dir = new Dir(new DirectoryInfo(path), ""); var remainder = dir.FileList().ToHashSet(); foreach (var p in packageListConfig.Skip(1)) { var fileList = dir.FileList(p.FileList); remainder.ExceptWith(fileList); yield return(new SrcPackage( name: name + "_" + p.Name.Select(n => n, () => string.Empty), package: p, fileList: fileList )); } // remainder.UnionWith(dir.FileList(firstPackage.FileList)); yield return(new SrcPackage( name: name, package: firstPackage, fileList: remainder )); }
static IEnumerable<Package> CreatePackageList( string name, string path, IEnumerable<Package> packageListConfig) { var firstPackage = packageListConfig.First(); var dir = new Dir(new DirectoryInfo(path), ""); var remainder = dir.FileList().ToHashSet(); foreach (var p in packageListConfig.Skip(1)) { var fileList = dir.FileList(p.FileList); remainder.ExceptWith(fileList); yield return new Package( name: name + "_" + p.Name.Select(n => n, () => string.Empty), package: p, fileList: fileList ); } // remainder.UnionWith(dir.FileList(firstPackage.FileList)); yield return new Package( name: name, package: firstPackage, fileList: remainder ); }