X-Git-Url: https://git.draconx.ca/gitweb/fvwmconf.git/blobdiff_plain/2d3af30297a70d86fa706b9bfc8c920a0e473a72..HEAD:/scripts/thumbnail.zsh diff --git a/scripts/thumbnail.zsh b/scripts/thumbnail.zsh index a967803..a275749 100755 --- a/scripts/thumbnail.zsh +++ b/scripts/thumbnail.zsh @@ -1,6 +1,35 @@ -#!/bin/zsh +#!/usr/bin/env zsh +# +# 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 +# to standard output. +# +# License WTFPL2: Do What The Fuck You Want To Public License, version 2. +# 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 -music=/stuff/music thumbs="$HOME/.fvwm/.thumbs" if ! [[ -d "$thumbs" ]]; then @@ -40,15 +69,18 @@ if [[ -z "$1" ]]; then fi if [[ -n "$ismusic" ]]; then - imgpath="$music/$(dirname "${1#$music}")/cover.jpg" + imgpath="$MUSIC/$(dirname "${1#$MUSIC}")/cover.jpg" [[ ! -f "$imgpath" ]] && imgpath="${imgpath%jpg}png" else imgpath="$1" 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"