()
| 98 | |
| 99 | |
| 100 | def main(): |
| 101 | parser = argparse.ArgumentParser() |
| 102 | parser.add_argument( |
| 103 | "--version", |
| 104 | help="Use this DocFX version instead of the latest stable.", |
| 105 | ) |
| 106 | parser.add_argument( |
| 107 | "--allow-prerelease", |
| 108 | action="store_true", |
| 109 | help="Allow prerelease versions when selecting latest.", |
| 110 | ) |
| 111 | parser.add_argument( |
| 112 | "--output", |
| 113 | default="dotnet/private/docfx_repo.bzl", |
| 114 | help="Output file path (default: dotnet/private/docfx_repo.bzl)", |
| 115 | ) |
| 116 | args = parser.parse_args() |
| 117 | |
| 118 | index = fetch_json(NUGET_INDEX_URL) |
| 119 | versions = index.get("versions", []) |
| 120 | if not versions: |
| 121 | raise ValueError("NuGet index returned no versions for DocFX") |
| 122 | |
| 123 | version = choose_version(versions, args.allow_prerelease, args.version) |
| 124 | nupkg_url = NUGET_NUPKG_URL.format(version=version) |
| 125 | sha256 = sha256_of_url(nupkg_url) |
| 126 | |
| 127 | output_path = Path(args.output) |
| 128 | if not output_path.is_absolute(): |
| 129 | workspace_dir = os.environ.get("BUILD_WORKSPACE_DIRECTORY") |
| 130 | if workspace_dir: |
| 131 | output_path = Path(workspace_dir) / output_path |
| 132 | output_path.write_text(render_docfx_repo(version, sha256)) |
| 133 | |
| 134 | print(f"Updated {output_path} to DocFX {version}") |
| 135 | |
| 136 | |
| 137 | if __name__ == "__main__": |
no test coverage detected