summaryrefslogtreecommitdiff
path: root/dmpv
blob: bf5ed51f4f5c018ce53d5b21bbe661252b6924ac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/sh

cd ~/Videos || exit
case "$@" in
  "-l")
    LOOP="true"
    ;;
  "-h")
    HELP="true"
    ;;
esac

playvid () {
  while true; do
    VIDEO=$(find "$HOME/Videos" | uniq | dmenu -l 15 "$@")
    [ -z "$VIDEO" ] && exit
    if [ "$VIDEO" = "." ]; then
      break;
    fi
    [ -d "$VIDEO" ] && cd "$VIDEO" && continue
    [ -f "$VIDEO" ] && break
    pwd
  done
  mpv "$VIDEO"
}

printhelp () {
  printf "dmpv is a simple dmenu interface for playing content with mpv\n"
  printf "dmpv [-l] [-h]\n"
  printf "dmpv assumes videos are stored in ~/Videos\n"
  printf "\tFlags are passed to dmenu\n"
  printf "\t-h\t\tprint this help message\n"
  printf "\t-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
else
  playvid "$@"
fi