Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 2680 | Autoría | Ultima modificación | Ver Log |

const fs = require('fs')
const path = require('path')

const toKebabCase = (str) => {
  return str
    .replace(/([a-z])([A-Z])/g, '$1-$2') // Convierte camelCase a camel-case
    .replace(/[\s_]+/g, '-') // Convierte espacios y guiones bajos a guiones
    .toLowerCase()
}

const renameFilesInDirectory = (dir) => {
  fs.readdir(dir, (err, files) => {
    if (err) {
      return console.error(`No se pudo leer el directorio: ${err.message}`)
    }

    files.forEach((file) => {
      const oldPath = path.join(dir, file)
      fs.stat(oldPath, (err, stats) => {
        if (err) {
          return console.error(
            `No se pudo obtener la información del archivo: ${err.message}`
          )
        }

        if (stats.isDirectory()) {
          // Recursivamente renombrar archivos en subdirectorios
          renameFilesInDirectory(oldPath)
        } else {
          const newPath = path.join(dir, toKebabCase(file))
          fs.rename(oldPath, newPath, (err) => {
            if (err) {
              return console.error(
                `No se pudo renombrar el archivo ${file}: ${err.message}`
              )
            }
            console.log(`Renombrado: ${file} -> ${path.basename(newPath)}`)
          })
        }
      })
    })
  })
}

// Cambia '/ruta/al/directorio' por el directorio que quieres procesar.
const directoryPath = './app/pages/account-settings/'

renameFilesInDirectory(directoryPath)