@@ -3,12 +3,12 @@ import { createTempDirectory, removeDirectory, readTspLocation, getEmitterFromRe
33import { Logger , printBanner , enableDebug , printVersion } from "./log.js" ;
44import { TspLocation , compileTsp , discoverMainFile , resolveTspConfigUrl } from "./typespec.js" ;
55import { getOptions } from "./options.js" ;
6- import { mkdir , writeFile , cp , readFile , access , stat , rename , unlink } from "node:fs/promises" ;
6+ import { mkdir , writeFile , cp , readFile , stat , rename , unlink } from "node:fs/promises" ;
77import { addSpecFiles , checkoutCommit , cloneRepo , getRepoRoot , sparseCheckout } from "./git.js" ;
88import { doesFileExist } from "./network.js" ;
99import { parse as parseYaml } from "yaml" ;
1010import { joinPaths , normalizePath , resolvePath } from "@typespec/compiler" ;
11- import { formatAdditionalDirectories , getAdditionalDirectoryName } from "./utils.js" ;
11+ import { formatAdditionalDirectories , getAdditionalDirectoryName , makeSparseSpecDir } from "./utils.js" ;
1212import { resolve } from "node:path" ;
1313import { config as dotenvConfig } from "dotenv" ;
1414
@@ -33,8 +33,7 @@ async function sdkInit(
3333 // URL scenario
3434 const repoRoot = await getRepoRoot ( outputDir ) ;
3535 const resolvedConfigUrl = resolveTspConfigUrl ( config ) ;
36- const cloneDir = joinPaths ( repoRoot , ".." , "sparse-spec" ) ;
37- await mkdir ( cloneDir , { recursive : true } ) ;
36+ const cloneDir = await makeSparseSpecDir ( repoRoot ) ;
3837 Logger . debug ( `Created temporary sparse-checkout directory ${ cloneDir } ` ) ;
3938 Logger . debug ( `Cloning repo to ${ cloneDir } ` ) ;
4039 await cloneRepo ( outputDir , cloneDir , `https://github.com/${ resolvedConfigUrl . repo } .git` ) ;
@@ -152,8 +151,7 @@ async function syncTspFiles(outputDir: string, localSpecRepo?: string) {
152151 await cp ( joinPaths ( localSpecRepoRoot , dir ) , joinPaths ( tempRoot , getAdditionalDirectoryName ( dir ) ) , { recursive : true , filter : filter } ) ;
153152 }
154153 } else {
155- const cloneDir = joinPaths ( repoRoot , ".." , "sparse-spec" ) ;
156- await mkdir ( cloneDir , { recursive : true } ) ;
154+ const cloneDir = await makeSparseSpecDir ( repoRoot ) ;
157155 Logger . debug ( `Created temporary sparse-checkout directory ${ cloneDir } ` ) ;
158156 Logger . debug ( `Cloning repo to ${ cloneDir } ` ) ;
159157 await cloneRepo ( tempRoot , cloneDir , `https://github.com/${ tspLocation . repo } .git` ) ;
@@ -292,16 +290,6 @@ async function main() {
292290 }
293291
294292 const repoRoot = await getRepoRoot ( rootUrl ) ;
295- try {
296- // FIXME: this is a workaround meanwhile we fix the issue with failing to delete the sparse-spec directory
297- // Tracking issue: https://github.com/Azure/azure-sdk-tools/issues/7636
298- access ( joinPaths ( repoRoot , ".." , "sparse-spec" ) ) . then ( ( ) => {
299- Logger . debug ( "Deleting existing sparse-spec directory" ) ;
300- removeDirectory ( joinPaths ( repoRoot , ".." , "sparse-spec" ) ) ;
301- } ) . catch ( ( ) => { } ) ;
302- } catch ( err ) {
303- Logger . debug ( `Error occurred while attempting to remove sparse-spec directory: ${ err } ` ) ;
304- }
305293
306294 if ( options . generateLockFile ) {
307295 await generateLockFile ( rootUrl , repoRoot ) ;
0 commit comments