MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / sync_docs

Function sync_docs

tasks/scripts/sync_docs_website.py:261–321  ·  view source on GitHub ↗
(args: argparse.Namespace)

Source from the content-addressed store, hash-verified

259
260
261def sync_docs(args: argparse.Namespace) -> None:
262 if args.source_root is None:
263 raise ValueError("--source-root is required when --operation=sync")
264 source_root = args.source_root.resolve()
265 docs_root = args.docs_website_root.resolve()
266 source_docs = source_root / "docs"
267 source_fern = source_root / "fern"
268 target_fern = docs_root / "fern"
269
270 ensure_existing(source_docs, "source docs")
271 ensure_existing(source_fern, "source fern config")
272 ensure_existing(target_fern, "docs website fern directory")
273
274 channel = clean_input(args.channel)
275 source_ref = clean_input(args.source_ref)
276 if not source_ref:
277 raise ValueError("--source-ref is required when --operation=sync")
278 version_slug = clean_input(args.version_slug)
279 display_override = clean_input(args.display_name)
280 slug = resolve_slug(channel, version_slug)
281 display_name = resolve_display_name(channel, slug, source_ref, display_override)
282 pages_dir = f"pages-{slug}"
283 refresh_shared = channel in {"dev", "latest"}
284
285 reset_directory(
286 source_docs,
287 target_fern / pages_dir,
288 preserve_components=not refresh_shared,
289 )
290 merge_directory(
291 source_fern / "assets", target_fern / "assets", overwrite=refresh_shared
292 )
293 merge_directory(
294 source_fern / "components", target_fern / "components", overwrite=refresh_shared
295 )
296 if refresh_shared:
297 copy_if_exists(source_fern / "main.css", target_fern / "main.css")
298 copy_if_exists(
299 source_fern / "fern.config.json", target_fern / "fern.config.json"
300 )
301
302 versions_dir = target_fern / "versions"
303 versions_dir.mkdir(parents=True, exist_ok=True)
304 write_yaml(
305 versions_dir / f"{slug}.yml",
306 version_navigation(source_docs / "index.yml", pages_dir),
307 )
308
309 update_docs_yml(
310 target_fern / "docs.yml",
311 VersionEntry(
312 slug=slug,
313 display_name=display_name,
314 path=f"./versions/{slug}.yml",
315 ),
316 target_fern,
317 )
318

Callers 1

mainFunction · 0.85

Calls 12

ensure_existingFunction · 0.85
clean_inputFunction · 0.85
resolve_slugFunction · 0.85
resolve_display_nameFunction · 0.85
reset_directoryFunction · 0.85
merge_directoryFunction · 0.85
copy_if_existsFunction · 0.85
write_yamlFunction · 0.85
version_navigationFunction · 0.85
update_docs_ymlFunction · 0.85
VersionEntryClass · 0.85
resolveMethod · 0.45

Tested by

no test coverage detected