Introduction
Introduction Statistics Contact Development Disclaimer Help
Refactor 2ff(1) - farbfeld - suckless image format with conversion tools
git clone git://git.suckless.org/farbfeld
Log
Files
Refs
README
LICENSE
---
commit 42678350147b13345174f1e4c637a89c442ffd3c
parent 65435b097b355105dc9a32f87ed80427d56b1c91
Author: Laslo Hunhold <[email protected]>
Date: Fri, 14 Apr 2017 17:32:12 +0200
Refactor 2ff(1)
The Unix philosophy teaches us that tools should strive to output only
necessary diagnostic information and also reflect errors properly with
the return value.
There were three subtle problems with 2ff:
1) If the farbfeld-passthrough failed, it would return 1 instead
of 1.
2) If the first 8 bytes contained a NUL byte, bash would print
an ugly warning message. Passing it through tr -d '\0' fixes
that.
3) Lack of comments. I added some to make the structure even
clearer, also including using an if-else-structure.
I removed the 2ff error message; the tools themselves print proper
messages already.
Diffstat:
M 2ff | 42 ++++++++++++++++-------------…
1 file changed, 22 insertions(+), 20 deletions(-)
---
diff --git a/2ff b/2ff
@@ -1,36 +1,38 @@
#!/bin/sh
+
+# arguments
if [ "$#" -ne 0 ]; then
echo "usage: $0" >&2
exit 1
fi
+# write input into temporary file
TMP=$(mktemp)
trap 'rm "$TMP"' EXIT
-
cat > "$TMP"
-if [ "$(dd if="$TMP" bs=1 count=8 2>/dev/null)" = "farbfeld" ]; then
+# determine the mime-type
+if [ "$(dd if="$TMP" bs=1 count=8 2>/dev/null | tr -d '\0')" = "farbfeld" ]; t…
cat "$TMP"
- exit 0
-fi
+else
+ MIME=$(file -ib "$TMP" | cut -d ";" -f 1)
-FORMAT=$(file -ib "$TMP" | cut -d ";" -f 1)
-
-case "$FORMAT" in
-image/png)
- png2ff < "$TMP"
- ;;
-image/jpeg)
- jpg2ff < "$TMP"
- ;;
-*)
- convert "$TMP" png:- 2>/dev/null | png2ff 2>/dev/null
- ;;
-esac
+ case "$MIME" in
+ image/png)
+ png2ff < "$TMP"
+ ;;
+ image/jpeg)
+ jpg2ff < "$TMP"
+ ;;
+ *)
+ convert "$TMP" png:- 2>/dev/null | png2ff 2>/dev/null
+ ;;
+ esac
+fi
+# errors
if [ $? -ne 0 ]; then
- printf "%s: failed to convert from %s\n" "$0" "$FORMAT" >&2
exit 1
+else
+ exit 0
fi
-
-exit 0
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.