#rename #cli #copy #cp #mv

app cpar

A commmand line utility that allows for batch coping & renaming with globs

2 releases

0.1.1 Dec 3, 2022
0.1.0 Nov 16, 2022

#2377 in Command line utilities

MIT license

11KB
193 lines

cpar

A commmand line utility that allows for batch coping & renaming with globs.

Help Page

Copies and mass-renames files using the variable character ($)

Usage: cpar <INPUT_PATH> <OUTPUT_PATH>

Arguments:
  <INPUT_PATH>   The files to be copied and renamed
  <OUTPUT_PATH>  The path for the renamed files

Options:
  -h, --help     Print help information
  -V, --version  Print version information

Example

Making new copies with different names

Assume a folder with the following files:

src/
	- ContactForm.tsx
	- ContactForm.module.scss
	- ContactForm.astro

cpar src/ContactForm$ src/MembershipForm$ the folder will contain:

src/
	- ContactForm.tsx
	- ContactForm.module.scss
	- ContactForm.astro
	+ MembershipForm.tsx (same contents as ContactForm.tsx)
	+ MembershipForm.module.scss (same contents as ContactForm.module.scss)
	+ MembershipForm.astro (same contents as ContactForm.astro)

Making new copies with different extensions

Assume a folder with the following files:

src/
	- foo.ts
	- bar.ts

cpar src/$.js src/$.ts the folder will contain:

src/
	- foo.js
	- bar.js

Test Command

cargo test -- --test-threads=1

Use Cases

Probably a bunch, but the ones that prodded me to make the tool in the first place were:

  • Build scripts for multi-language projects
  • Porting large numbers of MVC Framework HTML templates to .astro files
  • Creating a copy of a web UI component to use as a starter template

Todos for V1

  • Implement a proper Rust testing library - the included tests are rudimentary and use the standard library.
  • Change tests such that they can run in parallel (currently they only run consecutively)
  • Find a way to use the actual Bash wildcard character (*) in place of ($).
  • Publish to Homebrew + some APT-compatible repository

Dependencies

~1.2–1.8MB
~35K SLoC