Skip to content

Instantly share code, notes, and snippets.

@segunadebayo
Forked from finalclass/rename-camel-to-dash.js
Created August 26, 2020 08:21
Show Gist options
  • Save segunadebayo/d2967d82db3e5e5bea14771e2482a07c to your computer and use it in GitHub Desktop.
Save segunadebayo/d2967d82db3e5e5bea14771e2482a07c to your computer and use it in GitHub Desktop.
recursively renames every file and directory in the script path from camelCase and UpperCamelCase to dash-case
/*jshint node:true*/
'use strict';
/**
* This scripts recursively renames every file and directory in the script path
* from camelCase and UpperCamelCase to dash-case
*
* Do a backup before executing this script
*
* @lecense MIT
* @author Szymon Wygnański <s@finalclass.net>
*/
var fs = require('fs'),
path = require('path');
function camelToDash(text) {
return text.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
}
function renameDir(dir) {
var files = fs.readdirSync(dir),
f,
fileName,
path,
newPath,
file;
for (f = 0; f < files.length; f += 1) {
fileName = files[f];
path = dir + '/' + fileName;
file = fs.statSync(path);
newPath = dir + '/' + camelToDash(fileName);
fs.renameSync(path, newPath);
if (file.isDirectory()) {
renameDir(newPath);
}
}
}
renameDir(__dirname);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment