diff options
author | Arun Prakash Jana <engineerarun@gmail.com> | 2019-08-19 23:01:41 +0530 |
---|---|---|
committer | Arun Prakash Jana <engineerarun@gmail.com> | 2019-08-19 23:01:41 +0530 |
commit | b9530a5ce0eb727ec9833259f6b939de84d65a7c (patch) | |
tree | 65a572230d4a845a1b8315a12a0071fd46327323 /plugins | |
parent | 80c2c469dac78bac00ca11ee9cf4f05382b170b3 (diff) | |
download | nnn-b9530a5ce0eb727ec9833259f6b939de84d65a7c.tar.gz |
Plugin organize
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/README.md | 1 | ||||
-rwxr-xr-x | plugins/organize | 53 |
2 files changed, 54 insertions, 0 deletions
diff --git a/plugins/README.md b/plugins/README.md index fc4810c..d666240 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -19,6 +19,7 @@ The currently available plugins are listed below. | ndiff | sh | vimdiff | Diff for selection (limited to 2 for directories) | | nmount | sh | pmount, udisks2 | Toggle mount status of a device as normal user | | nwal | sh | nitrogen | Set the selected image as wallpaper using nitrogen | +| organize | sh | file | Auto-organize files in directories by file type | | pastebin | sh | [pastebinit](https://launchpad.net/pastebinit) | Paste contents of (text) file to paste.ubuntu.com | | pdfview | sh | pdftotext/<br>mupdf-tools | View PDF file in `$PAGER` | | picker | sh | nnn | Pick files and pipe the newline-separated list to another utility | diff --git a/plugins/organize b/plugins/organize new file mode 100755 index 0000000..3fb34c1 --- /dev/null +++ b/plugins/organize @@ -0,0 +1,53 @@ +#!/usr/bin/env sh + +# Description: Organize files in directories by category +# +# Shell: POSIX compliant +# Author: th3lusive + +organize() { + case "$(file -biL "$1")" in + *video*) + [ ! -d "Videos" ] && mkdir "Videos" + mv "$1" "Videos/$1" + printf "Moved %s to Videos\n" "$1" ;; + + *audio*) [ ! -d "Audio" ] && mkdir "Audio" + mv "$1" "Audio/$1" + printf "Moved %s to Audio\n" "$1" ;; + + *image*) + [ ! -d "Images" ] && mkdir "Images" + mv "$1" "Images/$1" + printf "Moved %s to Images\n" "$1" ;; + + *pdf*|*document*|*epub*|*djvu*|*cb*) + [ ! -d "Documents" ] && mkdir "Documents" + mv "$1" "Documents/$1" + printf "Moved %s to Documents\n" "$1" ;; + + *text*) + [ ! -d "Plaintext" ] && mkdir "Plaintext" + mv "$1" "Plaintext/$1" + printf "Moved %s to Plaintext\n" "$1" ;; + + *tar*|*xz*|*compress*|*7z*|*rar*|*zip*) + [ ! -d "Archives" ] && mkdir "Archives" + mv "$1" "Archives/$1" + printf "Moved %s to Archives\n" "$1" ;; + + *binary*) + [ ! -d "Binaries" ] && mkdir "Binaries" + mv "$1" "Binaries/$1" + printf "Moved %s to Binaries\n" "$1" ;; + esac +} + +main() { + for file in * + do + [ -f "$file" ] && organize "$file" + done +} + +main "$@" |