#!/bin/sh cd ~/Videos case "$@" in "-l") LOOP="true" ;; "-h") HELP="true" ;; esac playvid () { while true; do VIDEO=$(printf ".\n%s\n" "$(ls)" | uniq | barmenu "$@") [ -z $VIDEO ] && exit if [ "$VIDEO" = "." ]; then break; fi [ -d $VIDEO ] && cd $VIDEO && continue [ -f "$VIDEO" ] && break pwd done mpv "$VIDEO" } printhelp () { printf \ "Usage: dmpv [-l] [-h]\n" \ "dmpv is a simple barmenu interface for playing content with mpv\n" \ "dmpv assumes videos are stored in ~/Videos\n" \ " -h\t\tprint this help message\n" \ " -l\t\trun the prompt again after mpv exits\n" } if [ -n "$HELP" ]; then printhelp && exit 0 elif [ -n "$LOOP" ]; then while true; do playvid || exit 0 done fi playvid done fi