Skip to main content

No project description provided

Project description

nested-rimraf

Nested rimraf CLI app.

Use it to clear your junk in nested directories Looks for target file/directory through specified tree and then removes everything

Practice

Imaginary folder structure:

/subject
   /file
     /node_modules // file, not directory
   /node_modules
     /enemy.txt
   /sub
     /2
       /1
         /4
           /node_modules
             /enemy.txt
     /3
       /node_modules
         /enemy.txt
   /sub2
     /node_modules
       /enemy.txt
   /symlink
     /example
       /enemy.txt
     /node_modules // symlink to /subject/symlink/example

Tasks:

  1. Find all node_modules
  2. Find and remove all node_modules
  3. Find and remove all directories named node_modules
  4. Find and remove all node_modules, but do not remove symlinks
  5. [Ultimate] Find all node_modules, except files and symlinks, save them to file, correct file and remove the remaining

1. Find all node_modules

We need to run scan command with target=node_modules and directory=./subject

$> nested-rimraf scan node_modules ./subject

Files and directories (include symlinks):
         subject/node_modules
         subject/symlink/node_modules
         subject/file/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules

2. Find and remove all node_modules

As easy, as previous one. Just use rm instead of scan

$> nested-rimraf rm node_modules ./subject

Files and directories (include symlinks):
         subject/node_modules
         subject/symlink/node_modules
         subject/file/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Are you sure you want to delete it? [y/N]: y
Done flawlessly!

Note: Question Are you sure you want to delete it? [y/N]: y may be avoided with --agree/-y option. Like that:

$> nested-rimraf rm -y node_modules ./subject

Files and directories (include symlinks):
         subject/node_modules
         subject/symlink/node_modules
         subject/file/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Done flawlessly!

3. Find and remove all directories named node_modules

Ok, lets add option --dir-only/-d

$> nested-rimraf rm -y node_modules ./subject --dir-only 

Directories (include symlinks):
         subject/node_modules
         subject/symlink/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Done flawlessly!

As you can see, there is no subject/file/node_modules in the list (because it's file, not a directory).

Let's run something similar

4. Find and remove all node_modules, but do not remove symlinks

Same pattern:

$> nested-rimraf rm -y node_modules ./subject --without-symlinks

Directories (include symlinks):
         subject/node_modules
         subject/file/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Done flawlessly!

Let's try the hardest one, shall we?

5. [Ultimate] Find all node_modules, except files and symlinks, save them to file, correct file and remove the

remaining

Human control, eh?

$>  nested-rimraf scan -dsL node_modules ./subject --save-path ./subject/to_correct.txt 
Directories (exclude symlinks):
         subject/node_modules
         subject/sub/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Successfully saved list to "subject/to_correct.txt"

A lot of params:

  • -d - same as --dir-only. Includes only directories
  • -s - same as --without-symlinks. Excludes symlinks
  • -L - same as --save-list. Saves list of matches to file
  • --save-path - path to save matches

What does this file contain? Nothing special, just list of files

$> cat ./subject/to_correct.txt

subject/node_modules
subject/sub/node_modules
subject/sub/3/node_modules
subject/sub/2/1/4/node_modules
subject/sub2/node_modules

Let's take it easy and save subject/sub/node_modules by removing it from the file.

And, 3, 2, 1, clear!

$> nested-rimraf rmf -yds ./subject/to_correct.txt

Directories (enclude symlinks):
         subject/node_modules
         subject/sub/3/node_modules
         subject/sub/2/1/4/node_modules
         subject/sub2/node_modules
Done flawlessly!

Good job!

Usage:

$ nested-rimraf [OPTIONS] COMMAND [ARGS]...

Options:

  • --install-completion: Install completion for the current shell.
  • --show-completion: Show completion for the current shell, to copy it or customize the installation.
  • --help: Show this message and exit.

Commands:

  • rm: Scan and remove targets inside directory and...
  • rmf: Took file, generated by "nested-rimraf scan"...
  • scan: Scan directory and child-directories to find...

nested-rimraf rm

Scan and remove targets inside directory and sub-directories

Usage:

$ nested-rimraf rm [OPTIONS] TARGET [DIRECTORY]

Arguments:

  • TARGET: Target name to find inside of directory [required]
  • [DIRECTORY]: Directory to scan in [default: .]

Options:

  • -d, --dir-only: Target only directories [default: False]
  • -s, --without-symlinks: Do not process symlinks as targets [default: False]
  • -y, --agree: Remove without any questions [default: False]
  • -I, --ignore-errors: Ignore errors and delete until possible [default: False]
  • -v, --verbose: Talk a lot [default: False]
  • --help: Show this message and exit.

nested-rimraf rmf

Took file, generated by "nested-rimraf scan" and remove everything from it

Usage:

$ nested-rimraf rmf [OPTIONS] [SAVE_PATH]

Arguments:

  • [SAVE_PATH]: Remove list from passed file or ".nr-todo" inside passed directory [default: .nr-todo]

Options:

  • -d, --dir-only: Target only directories [default: False]
  • -s, --without-symlinks: Do not process symlinks as targets [default: False]
  • -y, --agree: Remove without any questions [default: False]
  • -I, --ignore-errors: Ignore errors and delete until possible [default: False]
  • -v, --verbose: Talk a lot [default: False]
  • --help: Show this message and exit.

nested-rimraf scan

Scan directory and child-directories to find targets

Usage:

nested-rimraf scan

Usage:

$ nested-rimraf scan [OPTIONS] TARGET [DIRECTORY]

Arguments:

  • TARGET: Target name to find inside of directory [required]
  • [DIRECTORY]: Directory to scan in [default: .]

Options:

  • -d, --dir-only: Target only directories [default: False]
  • -s, --without-symlinks: Do not process symlinks as targets [default: False]
  • -L, --save-list: Save list of targets for further use [default: False]
  • --save-path TEXT: File to save list of targets [default: .nr-todo]
  • -v, --verbose: Talk a lot [default: False]
  • --help: Show this message and exit.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nested-rimraf-0.1.0.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

nested_rimraf-0.1.0-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file nested-rimraf-0.1.0.tar.gz.

File metadata

  • Download URL: nested-rimraf-0.1.0.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.8.3 Darwin/21.3.0

File hashes

Hashes for nested-rimraf-0.1.0.tar.gz
Algorithm Hash digest
SHA256 231c7c3b05e1025a1d8bc8482cf61fe85a88f438575b367ff79e4f6505cc6b48
MD5 e64480575a80f9d9f04e8943f42def01
BLAKE2b-256 31cc9d1b9f044e4fc49f3229ced95c38644894fca480db80e03051f62b6a216e

See more details on using hashes here.

File details

Details for the file nested_rimraf-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: nested_rimraf-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.13 CPython/3.8.3 Darwin/21.3.0

File hashes

Hashes for nested_rimraf-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 94f769d046f220f87e0446c7dddfc10ccca68cf7407d0a62a78011e02247670b
MD5 cdd1e9ef7470ef7a6badc60f0b27e1d2
BLAKE2b-256 34672ba1519b2b6539771621f4bf8712ffd555b79f2dcf467933d72c47d4bc36

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page