GitXplorerGitXplorer
c

mack

public
43 stars
6 forks
13 issues

Commits

List of commits on branch master.
Unverified
b5b887b58aba3a473ea2244e9c1a43cf9b5a07db

build(deps): bump id3 from 1.14.0 to 1.15.0

ddependabot[bot] committed 2 months ago
Unverified
5c513d153d79d51fdeeea03c3493da42ae8432d7

deps: Update

ccdown committed 2 months ago
Unverified
08a8d1e463d26b4cd7ddb9e89c4f776d5ae2fbb4

ci: Add MSRV check

ccdown committed 2 months ago
Unverified
005b4e4c2efece96cfc4dfd5148bb40e632eeb11

build(deps): bump clap from 4.5.20 to 4.5.21

ddependabot[bot] committed 2 months ago
Unverified
af2e75a173432da4d64e80b4d9883ad09e76a99a

deps: Update

ccdown committed 2 months ago
Unverified
3b91a080ebfc4ca89763a0ee6d2affb690172845

deps: Update

ccdown committed 2 months ago

README

The README file for this repository.

mack | Tests

mack is an opinionated, fast music organiser. It enforces:

  • Directory layout
  • File name format
  • Metadata consistency (e.g., consistent "feat" tagging)
  • Format consistency (e.g., ID3 version)
  • ...and more!

Examples of fixes

  • Moving featured artists from the artist tag to the title
  • Enforcing a consistent "feat" format in title tags
  • Whitespace normalisation
  • Renaming files to format "{artist}/{album}/{track} {title}", or another format specified with --fmt

Usage

See --help. An example invocation is:

% mack --dry-run -o Music .
01 Pyramid.mp3: renamed to Music/宇宙コンビニ/染まる音を確認したら/01 Pyramid.mp3
02 8films.mp3: renamed to Music/宇宙コンビニ/染まる音を確認したら/02 8films.mp3
03 tobira.mp3: renamed to Music/宇宙コンビニ/染まる音を確認したら/03 tobira.mp3
04 Compass.mp3: renamed to Music/宇宙コンビニ/染まる音を確認したら/04 Compass.mp3
05 strings.mp3: renamed to Music/宇宙コンビニ/染まる音を確認したら/05 strings.mp3

You can see what would be changed first using --dry-run.

Installation

cargo install mack

Performance

mack has a strong focus on performance. Files which were not updated since the last mack run will not be examined at all. On a sample modern laptop with a mid-spec SSD, this means that we only take 0.005 seconds to run over ~3500 files under most circumstances (0.015 seconds on the very first run).

Configuration

If you don't want a particular file to be touched by mack, add _NO_MACK as a substring anywhere in the comment tag.