Fixing tmpfile creation and exit codes in pointer filter. - annna - Annna the nice friendly bot.
 (HTM) git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Tags
 (DIR) README
       ---
 (DIR) commit d58bae51f639073fd9fbc75ac96893ef65882507
 (DIR) parent 9d1be8e467a5a5843922f2fd32230acada17de2a
 (HTM) Author: Annna Robert-Houdin <annna@bitreich.org>
       Date:   Sun, 19 Feb 2023 12:53:38 +0100
       
       Fixing tmpfile creation and exit codes in pointer filter.
       
       Diffstat:
         M pointer                             |      64 ++++++++++++++++++++++---------
       
       1 file changed, 46 insertions(+), 18 deletions(-)
       ---
 (DIR) diff --git a/pointer b/pointer
       @@ -1,33 +1,48 @@
        #!/bin/sh
        
        die() {
       -        printf '%s\n' "$1" >&2
       +        [ -n "$1" ] && printf '%s\n' "$1" >&2
                exit 1
        }
        
       -if test $# -ne 2; then
       -        die "usage: ${0##*/} <file> <outimagefile>"
       -fi
       +[ $# -ne 2 ] && die "usage: ${0##*/} <file> <outimagefile>"
        
        mimetype="$(file -ib "$1")"
       +rminfile=0
        case "$mimetype" in
       -        video/*)
       -                in="$(mktemp).jpg"
       -                ffmpeg -i "$1" -frames:v 1 "$in";;
       -        image/png*)
       -                # imagemagick text draw on png files is broken,
       -                # tested on gentoo imagemagick version 7.1.0-48
       -                in="$(mktemp).jpg"
       -                convert "$1" "$in";;
       -        image/*)
       -                in="$1";;
       -        *)
       -                die "file type '${mimetype}' not supported";;
       +video/*)
       +        in="$(mktemp -u tmp.XXXXXXXX.jpg)"
       +        ffmpeg -i "$1" -frames:v 1 "$in"
       +        if [ $? -gt 0 ];
       +        then
       +                [ -e "${in}" ] && rm -f "${in}"
       +                die
       +        fi
       +        rminfile=1
       +        ;;
       +image/png*)
       +        # imagemagick text draw on png files is broken,
       +        # tested on gentoo imagemagick version 7.1.0-48
       +        in="$(mktemp tmp.XXXXXXXX.jpg)"
       +        convert "$1" "$in"
       +        if [ $? -gt 0 ];
       +        then
       +                rm "${in}"
       +                die
       +        fi
       +        rminfile=1
       +        ;;
       +image/*)
       +        in="$1"
       +        ;;
       +*)
       +        die "file type '${mimetype}' not supported"
       +        ;;
        esac
        
        n="${1##*/}"
        n="${n%.*}"
       -tmp="$(mktemp).jpg"
       +tmp="$(mktemp tmp.XXXXXXXXX.jpg)"
        convert \
                \( \
                        +append \
       @@ -41,4 +56,17 @@ convert \
                -draw "text +10,+10 '${n}'" \
                -gravity northeast \
                -draw "text -422,+20 '*${n}'" \
       -        "$tmp" && mv "$tmp" "$2"
       +        "$tmp"
       +exitcode=$?
       +if [ $exitcode -eq 0 ];
       +then
       +        cp "${tmp}" "$2"
       +        chmod o+r "$2"
       +fi
       +
       +# cleanup
       +rm "${tmp}"
       +[ $rminfile -eq 1 ] && rm "${in}"
       +
       +exit $exitcode
       +