]> Sergey Matveev's repositories - nnn.git/commitdiff
Added md5sum plugin
authorath3 <ha05190@protonmail.com>
Wed, 19 Jun 2019 01:57:09 +0000 (03:57 +0200)
committerath3 <ha05190@protonmail.com>
Wed, 19 Jun 2019 02:06:19 +0000 (04:06 +0200)
plugins/README.md
plugins/md5sum [new file with mode: 0755]

index 1d243daa97fda3a068be5d9bfcbc98970cfdd49b..3b8f55085d7b57b971103b907512d4ec0be4efe2 100644 (file)
@@ -9,6 +9,7 @@
 | imgur | bash | - | Upload an image to imgur (from [imgur-screenshot](https://github.com/jomo/imgur-screenshot)) |
 | ipinfo | sh | curl, whois | Fetch external IP address and whois information |
 | kdeconnect | sh | kdeconnect-cli | Send selected files to an Android device |
+| md5sum | sh | md5sum | Create and verify md5 checksums |
 | mocplay | sh | [moc](http://moc.daper.net/) | Appends (and plays, see script) selection/dir/file in moc|
 | ndiff | bash | vimdiff | Diff for selection (limited to 2 for directories) |
 | nmount | sh | pmount, udisks2 | Toggle mount status of a device as normal user |
diff --git a/plugins/md5sum b/plugins/md5sum
new file mode 100755 (executable)
index 0000000..0ba8a1b
--- /dev/null
@@ -0,0 +1,36 @@
+#!/usr/bin/env sh
+
+# Description: Create and verify md5 checksums
+#
+# If selection is used: it will generate one md5 file containing the checksums and file names
+#                       [with paths if they are in another directory]
+# If file is used: if the file is .md5 file, then it does the check
+#                  if the file is not .md5 file, it creates the md5 file from it
+#
+# Shell: POSIX compliant
+# Author: ath3
+
+selection=~/.config/nnn/.selection
+resp=f
+
+if [ -s "$selection" ]; then
+    echo -n "work with selection (s) or current file (f) [default=f]: "
+    read resp
+fi
+
+if [ "$resp" = "s" ]; then
+    arr=$(cat $selection | tr '\0' '\n')
+    { read -r file; } <<< "$arr"
+    file=$(basename "$file").md5
+    cat "$selection" | sed 's|'"$PWD/"'||g' | xargs -0 -i md5sum {} > "$file"
+else
+    if ! [ -z "$1" ] && [ -f "$1" ]; then
+        if [ $(echo $1 | grep \.md5$) ]; then
+            cat "$1" | md5sum -c
+            read
+        else
+            file=$(basename "$1").md5
+            md5sum "$1" > "$file"
+        fi
+    fi
+fi