Skip to content

nsand/newid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

newid

Newid is Welsh for 'change', but it is pretty fitting for giving a file a new name, too.

Installation

To use the API:

npm install --save newid

To use the CLI and make the command newid available on your system:

npm install -g newid

Usage

If there are any changes to be made, you'll get a list of the before and after. You'll have to confirm that you want to make all of the changes, unless you use the force flag.

Supported Options

  • force - Renames matching files without being prompted
  • insensitive - Ignore case when finding matching files
  • help - Display usage help and immediately exit
  • slugify - Slugifies the file name, converting it to lowercase, replacing all non-English characters, and collapsing whitespace and separators into a single dash. (e.g., this filè_010.jpg => this-file-010.jpg)

Supported placeholders

  • {basename} - The base name of the file
  • {extname} - The file extension excluding the .
  • {index} - The index the file will be processed in

Supported placeholders - Timestamps

All file timestamps can be formatted using valid Moment.js Formats. Use the | to separate the timestamp type from the format string. As an example, {atime | YYYY-MM-DD}

  • {atime} - The time at which the file was last accessed
  • {ctime} - The time at which the file was last changed, this can include file permission changes in addition to content changes.
  • {mtime} - Time time at which the file's contents were last modified
  • {birthtime} - The time at which the file was created

API

var newid = require('newid');
newid('**/*.js', function (file) {
	// Adds the 'old' extension to all JavaScript files
	return file + '.old';
}, {force: true});
// Using the included transformer that parses placeholders: {basename}, {extname}, and {index}
var newid = require('newid');
newid('**/*.js', newid.transformer('{index}.{extname}'));

CLI

# Rename all JS files to end with .old
newid "**/*.js" {basename}.{extname}.old

# Rename all matching files and inject their index into the new name using the {index} placeholder
newid "**/*.js" {basename}-{index}.{extname}

# Rename all matching files to include its modification time, formatted as YYYY-MM-DD
newid "**/*.js" {basename}-{mtime | YYYY-MM-DD}.{extname}

# Rename all matching files without being prompted (--force|-f)
newid "**/*.js" {basename}.{extname}.old --force

# Rename all matching files regardless of case (--insensitive|-i)
newid "**/*.js" {basename}.{extname}.old --insensitive

# Rename all matching files, converting them into slugs (--slugify|-s)
newid "**/*.js" "{basename} {extname}.old" --slugify

About

A utility for changing file names

Resources

License

Stars

Watchers

Forks

Packages

No packages published