cabinet

Crates.iocabinet
lib.rscabinet
version0.6.1
sourcesrc
created_at2022-04-17 16:19:31.59076
updated_at2023-02-24 14:43:25.569212
descriptionA convenient file sorting utility
homepage
repositoryhttps://github.com/rayokamoto/cabinet
max_upload_size
id569502
size92,215
Ray (rayokamoto)

documentation

README

Cabinet

A convenient, cross-platform file sorting system that sorts files based on their attributes, such as file type, file name, and date modified.

Disclaimer: Note that features may be added, revised, or removed at any time as this is in active development


Installation

Clone the repository

git clone https://github.com/rayokamoto/cabinet
cd cabinet

Build with cargo

cargo build --release

Usage

cab <command> [options] [<path>]

More in-depth information is available in the features documentation.

Commands

  • date - Sort by date modified (before or after given date in YYYY-MM-DD format)
  • name - Sort by name of the file (by whether given pattern is in the name or not)
  • size - Sort by size of the file in KB (by whether file is smaller or larger than given size)
  • type - Sort by file type (e.g. .jpg, .png, .pdf, etc.)
  • multisort - Sort files based on all the above attributes

There are two options for sorting files: normal paths and path templates:

Using normal paths

When you run a command, you must provide a path/directory to sort. Relative paths also work - e.g. if you are in a directory with the folder projects, simply typing projects as your path will work.

No flags provided will default to using normal paths:

cab type "C:\Users\User\Downloads"
cab type "/home/User/Downloads"

Using templates

With templates, you can sort directories quickly. Invoke using the -t or --template option:

cab type -t downloads

Currently, the following templates are available:

  • documents
  • downloads
  • desktop
  • home (e.g. C:\Users\User\ or /home/User/)
  • music (or audio)
  • pictures
  • videos (or movies)

Testing

For testing, such as generating test files to sort, Python is used. Python 3.9 or higher is required.

Commit count: 75

cargo fmt