private async Task GenerateBazelFile()

in tools/nuget2bazel/rules/StdlibCoreGenerator.cs [30:77]


        private async Task GenerateBazelFile(string outpath, List<RefInfo> libs)
        {
            await using var f = new StreamWriter(outpath);
            await f.WriteLineAsync("\"\"");
            await f.WriteLineAsync();
            await f.WriteLineAsync("load(\"@io_bazel_rules_dotnet//dotnet/private:rules/stdlib.bzl\", \"core_stdlib_internal\")");
            await f.WriteLineAsync("load(\"@io_bazel_rules_dotnet//dotnet/private:rules/libraryset.bzl\", \"core_libraryset\")");
            await f.WriteLineAsync();
            await f.WriteLineAsync("# buildifier: disable=unnamed-macro");
            await f.WriteLineAsync("def define_stdlib():");

            await f.WriteLineAsync("    \"Declares stdlib\"");
            await f.WriteLineAsync("    core_libraryset(");
            await f.WriteLineAsync("        name = \"NETStandard.Library\",");
            await f.WriteLineAsync("        deps = [");
            await f.WriteLineAsync("        ],");
            await f.WriteLineAsync("    )");
            await f.WriteLineAsync("    core_libraryset(");
            await f.WriteLineAsync("        name = \"Microsoft.AspNetCore.App\",");
            await f.WriteLineAsync("        deps = [");
            await f.WriteLineAsync("        ],");
            await f.WriteLineAsync("    )");
            await f.WriteLineAsync("    core_libraryset(");
            await f.WriteLineAsync("        name = \"libraryset\",");
            await f.WriteLineAsync("        deps = [");
            foreach (var d in libs)
            {
                await f.WriteLineAsync($"            \":{d.Name}\",");
            }
            await f.WriteLineAsync("        ],");
            await f.WriteLineAsync("    )");

            foreach (var d in libs)
            {
                await f.WriteLineAsync($"    core_stdlib_internal(");
                await f.WriteLineAsync($"        name = \"{d.Name}\",");
                await f.WriteLineAsync($"        version = \"{d.Version}\",");
                if (d.Ref != null)
                    await f.WriteLineAsync($"        ref = \"{d.Ref}\",");
                if (d.StdlibPath != null)
                    await f.WriteLineAsync($"        stdlib_path = \"{d.StdlibPath}\",");
                await f.WriteLineAsync($"        deps = [");
                foreach (var dep in d.Deps)
                    await f.WriteLineAsync($"            {dep},");
                await f.WriteLineAsync($"        ],");
                await f.WriteLineAsync($"    )");
            }
        }