Skip to content

Instantly share code, notes, and snippets.

@carlol
Last active February 26, 2016 09:41
Show Gist options
  • Select an option

  • Save carlol/81f2e8681ffb5eb4b48d to your computer and use it in GitHub Desktop.

Select an option

Save carlol/81f2e8681ffb5eb4b48d to your computer and use it in GitHub Desktop.
script to normalize drawable naming #android #nodejs #script
var fs = require('fs');
var path = require('path');
var walk = function (dir, done) {
var results = [];
fs.readdir(dir, function (err, list) {
if (err) return done(err);
var pending = list.length;
if (!pending) return done(null, results);
list.forEach(function (file) {
file = path.resolve(dir, file);
fs.stat(file, function (err, stat) {
if (stat && stat.isDirectory()) {
walk(file, function (err, res) {
results = results.concat(res);
if (!--pending) done(null, results);
});
} else {
results.push(file);
if (!--pending) done(null, results);
}
});
});
});
};
function normalizeDrawableNaming(drawableName) {
var firstChar = drawableName.charAt(0);
if (!isNaN(firstChar)) {
drawableName = "_" + firstChar + drawableName.substring(1);
}
drawableName = drawableName.replace(/@.*\./g, '.');
return drawableName.toLowerCase();
}
var target = "target_folder";
walk(target, function (err, filenames) {
if (err) throw err;
// console.log(filename);
filenames.forEach(function (filename) {
var dirname = path.dirname(filename);
var name = path.basename(filename);
fs.renameSync(filename, path.join(dirname, normalizeDrawableNaming(name)));
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment