aboutsummaryrefslogtreecommitdiffstats
path: root/community/nnn/nlay
diff options
context:
space:
mode:
authorJakub Jirutka <jakub@jirutka.cz>2018-04-03 00:41:24 +0200
committerJakub Jirutka <jakub@jirutka.cz>2018-04-03 00:44:47 +0200
commite25c15766f5a036de0fc7290cba7b98ef41b46ec (patch)
tree7dec8170db73d5e18cb14f3482153d6f72086ae2 /community/nnn/nlay
parent118a78fe94b503a7e21c98c71fc0e6c3d76373e3 (diff)
downloadaports-e25c15766f5a036de0fc7290cba7b98ef41b46ec.tar.bz2
aports-e25c15766f5a036de0fc7290cba7b98ef41b46ec.tar.xz
community/nnn: move from testing
Diffstat (limited to 'community/nnn/nlay')
-rw-r--r--community/nnn/nlay78
1 files changed, 78 insertions, 0 deletions
diff --git a/community/nnn/nlay b/community/nnn/nlay
new file mode 100644
index 0000000000..3d6297f192
--- /dev/null
+++ b/community/nnn/nlay
@@ -0,0 +1,78 @@
+#!/bin/sh
+
+# #############################################################################
+# nlay: a customizable script to play files in different apps by file type
+#
+# usage: nlay file type
+#
+# MUST READ:
+#
+# 1. Feel free to change the default apps to your favourite ones.
+# Simple use 'run_fg' or 'run_bg' to run the specified app with the given
+# options in foreground or background respectively. Variable '$1' contains
+# path of the file to open. If run_bg is used the app is detached and
+# started in the background in silent mode. If the app is not installed
+# (i.e. is not on your PATH), it is silently skipped and the script tries
+# next 'run_bg' or 'run_fg'.
+#
+# The 'run_bg' vs. 'run_fg' depends on personal preference and type of app,
+# e.g., I would start vim (CLI) in the foreground but Sublime Text (GUI) in
+# the background.
+#
+# 2. Detached apps are not killed when nnn exits. Use kill(1) or killall(1) to
+# to stop console based background apps.
+#
+# 3. nlay is OVERWRITTEN during nnn upgrade. You can store your custom nlay in a
+# location other than the default and have an alias with nnn option '-p' to
+# invoke it. Remember it might break or lack new capabilities added to nlay
+# in future releases. Check the file diff once in a while.
+#
+# Please note that this is not the original nlay script, but Alpine version
+# rewritten to be compatible with any POSIX compliant shell, not just Bash/ZSH.
+#
+# #############################################################################
+
+# Runs the command in foreground if exists.
+run_fg() {
+ which "$1" >/dev/null && "$@"
+ exit 0
+}
+
+# Runs the command in background if exists.
+run_bg() {
+ which "$1" >/dev/null \
+ && "$@" >/dev/null 2>&1 & \
+ && exit 0
+}
+
+# Enable the lines below to handle file by extension
+# This is provided for using a custom player for specific files
+# $ext holds the extension
+<<ENABLE_FILE_TYPE_HANDLING
+fname=$(basename "$1")
+case "$fname" in
+ *.*) ;;
+ *) exit 1;;
+esac
+
+ext="${fname##*.}"
+[ -n "$ext" ] || exit 1
+ext=$(printf %s "$ext" | tr '[A-Z]' '[a-z]')
+
+# handle this extension and exit
+ENABLE_FILE_TYPE_HANDLING
+
+
+#------------ PLAINTEXT (UNUSED) ------------
+if [ "$2" = "text" ]; then
+ run_fg vim "$1"
+
+#----------------- SEARCH -------------------
+elif [ "$2" = "search" ]; then
+ run_bg gnome-search-tool --path "$1"
+ run_bg catfish --path "$1"
+
+#--------------- SCREENSAVER ----------------
+elif [ "$2" = "screensaver" ]; then
+ run_fg vlock
+fi