From d6fbe87768a0893581e3fbad89c43aa2aa839251 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Sun, 26 May 2019 07:36:24 +0530 Subject: [PATCH] Support directory diff --- plugins/README.md | 2 +- plugins/ndiff | 14 ++++++++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/plugins/README.md b/plugins/README.md index bcaedf6c..107bf992 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -9,7 +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 | -| ndiff | sh | vimdiff | Show diff for selection | +| ndiff | bash | vimdiff | Diff for selection (limited to 2 for directories) | | nmount | sh | pmount | Toggle mount status of a device as normal user | | nwal | sh | nitrogen | Set the selected image as wallpaper using nitrogen | | pastebin | sh | [pastebinit](https://launchpad.net/pastebinit) | Paste contents of current (text) file to paste.ubuntu.com | diff --git a/plugins/ndiff b/plugins/ndiff index fad28adb..46e829a7 100755 --- a/plugins/ndiff +++ b/plugins/ndiff @@ -1,8 +1,14 @@ -#!/usr/bin/env sh +#!/usr/bin/env bash -# Description: Show diff using vimdiff +# Description: Show diff of 2 directories or multiple files in vimdiff # -# Shell: POSIX compliant +# Shell: Bash # Author: Arun Prakash Jana -vimdiff $(cat ~/.config/nnn/.selection | tr '\0' '\n') +arr=($(cat ~/.config/nnn/.selection | tr '\0' '\n')) + +if [ -d "${arr[0]}" ] && [ -d "${arr[1]}" ]; then + vimdiff <(cd ${arr[0]} && find | sort) <(cd ${arr[1]} && find | sort) +else + vimdiff "${arr[@]}" +fi