@@ -42,9 +42,10 @@ public BuildContext(IFileSystem readFileSystem, IFileSystem writeFileSystem, str
4242 ReadFileSystem = readFileSystem ;
4343 WriteFileSystem = writeFileSystem ;
4444
45- var docsFolder = FindDocsFolderFromRoot ( ) ;
46-
47- SourcePath = ! string . IsNullOrWhiteSpace ( source ) ? ReadFileSystem . DirectoryInfo . New ( source ) : docsFolder ;
45+ var rootFolder = ! string . IsNullOrWhiteSpace ( source )
46+ ? ReadFileSystem . DirectoryInfo . New ( source )
47+ : ReadFileSystem . DirectoryInfo . New ( Path . Combine ( Paths . Root . FullName , "docs" ) ) ;
48+ SourcePath = FindDocsFolderFromRoot ( rootFolder ) ;
4849
4950 OutputPath = ! string . IsNullOrWhiteSpace ( output )
5051 ? WriteFileSystem . DirectoryInfo . New ( output )
@@ -59,12 +60,14 @@ public BuildContext(IFileSystem readFileSystem, IFileSystem writeFileSystem, str
5960 Git = GitConfiguration . Create ( ReadFileSystem ) ;
6061 }
6162
62- private IDirectoryInfo FindDocsFolderFromRoot ( )
63+ private IDirectoryInfo FindDocsFolderFromRoot ( IDirectoryInfo rootPath )
6364 {
64- var defaultDocsFolder = ReadFileSystem . DirectoryInfo . New ( Path . Combine ( Paths . Root . FullName , "docs" ) ) ;
65- var root = ReadFileSystem . DirectoryInfo . New ( Paths . Root . FullName ) ;
66- var docsFolder = root . EnumerateFiles ( "docset.yml" , SearchOption . AllDirectories ) . FirstOrDefault ( ) ;
67- return docsFolder ? . Directory ?? defaultDocsFolder ;
65+ if ( rootPath . Exists &&
66+ ReadFileSystem . File . Exists ( Path . Combine ( rootPath . FullName , "docset.yml" ) ) )
67+ return rootPath ;
68+
69+ var docsFolder = rootPath . EnumerateFiles ( "docset.yml" , SearchOption . AllDirectories ) . FirstOrDefault ( ) ;
70+ return docsFolder ? . Directory ?? throw new Exception ( $ "Can not locate docset.yml file in '{ rootPath } '") ;
6871 }
6972
7073}
0 commit comments