add git-annex-compute-imageconvert

This commit is contained in:
Joey Hess 2025-03-06 14:47:22 -04:00
parent 825a648670
commit 138421449e
No known key found for this signature in database
GPG key ID: DB12DB0FF05F8F38
3 changed files with 33 additions and 2 deletions

View file

@ -14,6 +14,10 @@ Files: doc/special_remotes/external/*
Copyright: © 2013 Joey Hess <id@joeyh.name>
License: GPL-3+
Files: doc/special_remotes/compute/git-annex-compute-imageconvert
Copyright: © 2025 Joey Hess <id@joeyh.name>
License: GPL-3+
Files: doc/design/external_backend_protocol/git-annex-backend-XFOO
Copyright: © 2020 Joey Hess <id@joeyh.name>
License: GPL-3+

View file

@ -32,6 +32,9 @@ To write programs used by the compute special remote, see the
[[design/compute_special_remote_interface]].
Have you written a generally useful (and secure) compute program?
List it here!
List it here with an example!
* ...
* [[compute/git-annex-compute-imageconvert]] --
Uses imagemagick to convert between image formats
`git-annex addcomputed --to=imageconvert foo.jpeg foo.gif`

View file

@ -0,0 +1,24 @@
#!/bin/sh
# git-annex compute special remote program that uses imagemagic's convert
# to convert one type of image format into another. Eg, jpeg to gif.
#
# Copyright 2025 Joey Hess; licenced under the GNU GPL version 3 or higher.
set -e
if [ -z "$1" ] || [ -z "$2" ]; then
echo "Specify the input image file, followed by the output image file." >&2
echo "Example: foo.jpg foo.gif" >&2
exit 1
fi
echo "INPUT $1"
read input
echo "OUTPUT $2"
if [ -n "$input" ]; then
# Prefixing the filenames with "./" makes sure that they are processed
# as files, even if they look like dashed options.
mkdir -p "$(dirname "./$2")"
ln -s "$input" "./$1"
convert "./$1" "./$2"
fi