From 7a5fbaef8641be2a1af30c98e50e8baee94171e7 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Thu, 19 Oct 2017 21:39:17 -0400 Subject: [PATCH] thumbnailer: Follow only one level of symbolic link. Since my music is all in git annex now, the thumbnailer follows the cover art symlinks all the way to the annex object directory. This is less than helpful, since the intention was to locate the album scan directory. Change the --image mode to just read the link once and then stop. --- thumbnail.zsh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/thumbnail.zsh b/thumbnail.zsh index de5e44f..a275749 100755 --- a/thumbnail.zsh +++ b/thumbnail.zsh @@ -1,6 +1,6 @@ #!/usr/bin/env zsh # -# Copyright © 2008 Nick Bowler +# Copyright © 2008, 2017 Nick Bowler # # Simple thumbnail generator for use with FVWM. Thumbnails can be generated at # any desired size, and are cached for future use. Prints the cached filename @@ -10,6 +10,22 @@ # This is free software: you are free to do what the fuck you want to. # There is NO WARRANTY, to the extent permitted by law. +# resolve_file [file] +# +# If the argument is a symbolic link, print the target of that link. +# Otherwise, prints the basename of file. +resolve_file () { + test $# -eq 1 || return + + # Ensure filename won't be confused for any kind of find argument... + case $1 in + /*) :;; + *) set x "./$1"; shift + esac + + find "$1" -prune \( -type l -printf '%l' -o -printf '%f' \) +} + if [[ -z "$MUSIC" ]]; then MUSIC=/home/music fi @@ -60,8 +76,11 @@ else fi [[ ! -f "$imgpath" ]] && exit 0 - -image="$(readlink -f -- "$imgpath")" +image=`resolve_file "$imgpath"` +case $image in +/*) :;; +*) image=`dirname $imgpath`/$image +esac [[ ! -f "$image" ]] && exit 0 thumb="$thumbs/$(echo -n $image | md5sum - | cut -d ' ' -f 1)_$size.png" -- 2.43.0