export function replaceFileNamesWithShallowNamesRelativeToTemp()

in src/types/privatekubectl.ts [98:141]


export function replaceFileNamesWithShallowNamesRelativeToTemp(
   kubectlCmd: string
) {
   let filenames = extractFileNames(kubectlCmd)
   core.debug(`filenames originally provided in kubectl command: ${filenames}`)
   let relativeShallowNames = filenames.map((filename) => {
      const relativeName = path.relative(getTempDirectory(), filename)

      const relativePathElements = relativeName.split(path.sep)

      const shallowName = relativePathElements.join('-')

      // make manifests dir in temp if it doesn't already exist
      const manifestsTempDir = createTempManifestsDirectory()

      const shallowPath = path.join(manifestsTempDir, shallowName)
      core.debug(
         `moving contents from ${filename} to shallow location at ${shallowPath}`
      )

      core.debug(`reading contents from ${filename}`)
      const contents = fs.readFileSync(filename).toString()

      core.debug(`writing contents to new path ${shallowPath}`)
      fs.writeFileSync(shallowPath, contents)

      return shallowName
   })

   let result = kubectlCmd
   if (filenames.length != relativeShallowNames.length) {
      throw Error(
         'replacing filenames with relative path from temp dir, ' +
            filenames.length +
            ' filenames != ' +
            relativeShallowNames.length +
            'basenames'
      )
   }
   for (let index = 0; index < filenames.length; index++) {
      result = result.replace(filenames[index], relativeShallowNames[index])
   }
   return result
}