From edf587a48f9dfdee92399b713d5ae0e39789bf70 Mon Sep 17 00:00:00 2001 From: Arun Prakash Jana Date: Mon, 3 Jun 2019 18:26:53 +0530 Subject: [PATCH] Add plugin to play music in MOC --- plugins/README.md | 1 + plugins/mocplay | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 plugins/mocplay diff --git a/plugins/README.md b/plugins/README.md index 1d698e26..79abca15 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -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 | +| 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 | | nwal | sh | nitrogen | Set the selected image as wallpaper using nitrogen | diff --git a/plugins/mocplay b/plugins/mocplay new file mode 100755 index 00000000..b883b83e --- /dev/null +++ b/plugins/mocplay @@ -0,0 +1,42 @@ +#!/usr/bin/env sh + +# Description: Appends and optionally plays music in MOC +# +# Notes: +# - if selection is available, plays it, else plays the current file or directory +# - appends tracks and exits is MOC is running, else clears playlist and adds tracks +# +# Shell: POSIX compliant +# Author: Arun Prakash Jana + +selection=~/.config/nnn/.selection +cmd=$(pgrep -x mocp 2>/dev/null) +ret=$cmd + +if [ -s "$selection" ]; then + # try selection first + if [ -z "$ret" ]; then + # mocp not running + mocp -S + + # clear selection and play + cat "$selection" | xargs -0 mocp -acp + else + # mocp running, just append + cat "$selection" | xargs -0 mocp -a + fi +else + # ensure a file/dir is passed + if ! [ -z "$1" ]; then + if [ -z "$ret" ]; then + # mocp not running + mocp -S + + # clear selection and play + mocp -acp "$1" + else + # mocp running, just append + mocp -a "$1" + fi + fi +fi