| 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 |
--- /dev/null
+#!/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