| Crates.io | neaten |
| lib.rs | neaten |
| version | 0.1.20 |
| created_at | 2025-03-18 12:52:37.055603+00 |
| updated_at | 2025-03-29 08:34:27.280476+00 |
| description | An application to cleanup resources from hard drive |
| homepage | https://github.com/abhinath84/neaten |
| repository | https://github.com/abhinath84/neaten |
| max_upload_size | |
| id | 1596558 |
| size | 74,264 |
An application to cleanup resources from hard drive.
neaten - Command to cleanup resources from hard drive
neaten -c, --config <config_file>
-d, --destination <destination_folder>
-k, --kind <folder/file>
-p, --patterns <comma_sep_string>
-e, --exclude <comma_sep_string>
--dryrun <bool>
-h, --help
Command to cleanup resources from hard drive. command will remove all files or folders mentioned in patterns from destionation & it's sub directories.
You can remove files/folders for a specific destination directory or from multiple destination directories.
If you want to remove files/folder from a specific directory, then pass destination, kind & patterns as argument.
neaten --destination "/usr/sample/rust" --kind "folder" --patterns "target,dist"
or
neaten --destination "/usr/sample/rust" --kind "folder" --patterns "target" --patterns "dist"
For multiple destination directories pass config argument with config file path which configured with multiple destination directories.
neaten --config "/usr/sample/config.json"
Config file must be a json file. There is no specific name for config file, you can choose any name.
Root object of the config file must be an array. Here is the format of each config option:
{
"destination": "<destination_path>",
"kind": "folder/file",
"patterns": ["pattern1", "pattern2"],
"exclude": ["exclude1", "exclude2", "exclude3"]
}
excludeis an optional field.
Refer Config file Sample section for more about config file.
If you provide both
config&destination, kind, patternscombo, command will continue withconfigargument.
You can dry-run to check which files or folders will be removed if execute the command. You can dry-run with optional argument dryrun.
Refer EXAMPLES section for more examples of how to use the command.
-c, --config <path>_
Config file with path(absolute or relative path). Config file must be in json format.
-d, --destination <path>
destination directory path(absolute or relative path).
-k, --kind <enum>
what kind of item wants to remove. It's an enum type with value: folder or file.
-p, --patterns <string>
List of patterns to remove(comma separated value). Pass a comma(,) separated string or call multiple time.
-e, --exclude <string>
List of items to be excluded from remove(comma separated value). Pass a comma(,) separated string or call multiple time.
--dryrun <enum>
dry-run mode to check list of item to be removed.
-h, --help
Display help for the command.
$ neaten --config "/usr/sample/config.json"
$ neaten -c "/usr/sample/config.json"
destionation, kind & patterns arguments.$ neaten --destination "/usr/sample/rust" --kind "folder" --patterns "target"
$ neaten -d "/usr/sample/rust" -k "folder" -p "target"
$ neaten --destination "/usr/sample/node" --kind "folder" --patterns "dist,node_modules"
$ neaten -d "/usr/sample/node" -k "folder" -p "dist,node_modules"
$ neaten --destination "/usr/sample/node" --kind "folder" --patterns dist --patterns node_modules
$ neaten -d "/usr/sample/node" -k "folder" -p dist -p node_modules
destionation, kind & patterns arguments.$ neaten --destination "/usr/sample/rust" --kind "file" --patterns "exe"
$ neaten -d "/usr/sample/rust" -k "file" -p "exe"
$ neaten --destination "/usr/sample/node" --kind "file" --patterns "txt,log"
$ neaten -d "/usr/sample/node" -k "file" -p "txt,log"
$ neaten --destination "/usr/sample/node" --kind "file" --patterns txt --patterns "log"
$ neaten -d "/usr/sample/node" -k "file" -p txt -p "log"
$ neaten --destination "/usr/sample/rust" --kind "folder" --patterns "target" --exclude "obj"
$ neaten -d "/usr/sample/rust" -k "folder" -p "target" -e "obj"
$ neaten --destination "/usr/sample/rust" --kind "folder" --patterns "target" --exclude "obj,dist"
$ neaten -d "/usr/sample/rust" -k "folder" -p "target" -e "obj,dist"
$ neaten --destination "/usr/sample/rust" --kind "folder" --patterns "target" --exclude "obj" --exclude "dist"
$ neaten -d "/usr/sample/rust" -k "folder" -p "target" -e "obj" -e "dist"
destionation, kind & patterns arguments.$ neaten --destination "/usr/sample/rust" --kind "folder" --patterns "target" --exclude "obj" --dryrun
$ neaten -d "/usr/sample/rust" -k "folder" -p "target" -e "obj" --dryrun
$ neaten --destination "/usr/sample/rust" --kind "folder" --patterns "target" --dryrun
$ neaten -d "/usr/sample/rust" -k "folder" -p "target" --dryrun
config arguments.$ neaten --config "/usr/sample/config.json" --dryrun
$ neaten -c "/usr/sample/config.json" --dryrun
exclude optional fieldCurrently removing of folder support full folder name, no regular expression support is there. You must provide full folder name in fields like: patterns, exclude.
[
{
"destination": "/usr/sample/rust",
"kind": "folder",
"patterns": ["target"],
"exclude": ["special_sub_folder", "another_folder"]
},
{
"destination": "/usr/sample/node",
"kind": "folder",
"patterns": ["dist", "node_modules"]
},
{
"destination": "/usr/sample/C++",
"kind": "folder",
"patterns": ["build", "Debug", "Release"]
}
]
exclude optional fieldCurrently removing of files support full extension name, no regular expression support is there. You must provide full extension name in the fieldpatterns. For optional field exclude you need to provide full file name.
[
{
"destination": "/usr/sample/rust",
"kind": "file",
"patterns": ["toml"],
"exclude": ["cargo.toml"]
},
{
"destination": "/usr/sample/node",
"kind": "file",
"patterns": ["txt", "log"]
},
{
"destination": "/usr/sample/C++",
"kind": "file",
"patterns": ["exe", "obj", "log"]
}
]
exclude optional field[
{
"destination": "/usr/sample/rust",
"kind": "folder",
"patterns": ["target"],
"exclude": ["special_sub_folder", "another_folder"]
},
{
"destination": "/usr/sample/rust",
"kind": "file",
"patterns": ["toml"],
"exclude": ["cargo.toml"]
},
{
"destination": "/usr/sample/node",
"kind": "folder",
"patterns": ["dist", "node_modules"]
},
{
"destination": "/usr/sample/node",
"kind": "file",
"patterns": ["txt", "log"]
},
{
"destination": "/usr/sample/C++",
"kind": "folder",
"patterns": ["build", "Debug", "Release"]
},
{
"destination": "/usr/sample/C++",
"kind": "file",
"patterns": ["exe", "obj", "log"]
}
]