From 16a52340de79c370310cfba4caa06e5782748cb5 Mon Sep 17 00:00:00 2001 From: Nikita Ivanov Date: Fri, 17 Jun 2022 22:50:17 +0500 Subject: [PATCH] Add support for archives --- helpers.sh | 4 ++++ prev/atool.sh | 3 +++ previews.h | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 prev/atool.sh diff --git a/helpers.sh b/helpers.sh index 02495fc..70c1061 100644 --- a/helpers.sh +++ b/helpers.sh @@ -19,6 +19,10 @@ exists() { command -v "$1" >/dev/null } +check_exists() { + exists "$@" || exit 127 +} + send_image() { path="$(printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g')" printf '{ "action": "add", "identifier": "preview", "x": %d, "y": %d, "width": %d, "height": %d, "scaler": "contain", "scaling_position_x": 0.5, "scaling_position_y": 0.5, "path": "%s"}\n' "$x" "$y" "$w" "$h" "$path" > "$fifo" diff --git a/prev/atool.sh b/prev/atool.sh new file mode 100644 index 0000000..776cd0a --- /dev/null +++ b/prev/atool.sh @@ -0,0 +1,3 @@ +check_exists atool + +atool -l -- "$f" | cut -d ' ' -f 6- diff --git a/previews.h b/previews.h index 6365cf0..7f5de61 100644 --- a/previews.h +++ b/previews.h @@ -44,6 +44,54 @@ Preview b_previews[] = { PR(NULL, "text", "x-diff", colordiff), PR(NULL, "text", "x-patch", colordiff), + PR("tar.gz", NULL, NULL, atool), + PR("tgz", NULL, NULL, atool), + PR("tgz", NULL, NULL, atool), + PR("tar.gz", NULL, NULL, atool), + PR("tgz", NULL, NULL, atool), + PR("tar.bz", NULL, NULL, atool), + PR("tbz", NULL, NULL, atool), + PR("tar.bz2", NULL, NULL, atool), + PR("tbz2", NULL, NULL, atool), + PR("tar.Z", NULL, NULL, atool), + PR("tZ", NULL, NULL, atool), + PR("tar.lzo", NULL, NULL, atool), + PR("tzo", NULL, NULL, atool), + PR("tar.lz", NULL, NULL, atool), + PR("tlz", NULL, NULL, atool), + PR("tar.xz", NULL, NULL, atool), + PR("txz", NULL, NULL, atool), + PR("tar.7z", NULL, NULL, atool), + PR("t7z", NULL, NULL, atool), + PR("tar", NULL, NULL, atool), + PR("zip", NULL, NULL, atool), + PR("jar", NULL, NULL, atool), + PR("war", NULL, NULL, atool), + PR("rar", NULL, NULL, atool), + PR("lha", NULL, NULL, atool), + PR("lzh", NULL, NULL, atool), + PR("7z", NULL, NULL, atool), + PR("alz", NULL, NULL, atool), + PR("ace", NULL, NULL, atool), + PR("a", NULL, NULL, atool), + PR("arj", NULL, NULL, atool), + PR("arc", NULL, NULL, atool), + PR("rpm", NULL, NULL, atool), + PR("deb", NULL, NULL, atool), + PR("cab", NULL, NULL, atool), + PR("gz", NULL, NULL, atool), + PR("bz", NULL, NULL, atool), + PR("bz2", NULL, NULL, atool), + PR("Z", NULL, NULL, atool), + PR("lzma", NULL, NULL, atool), + PR("lzo", NULL, NULL, atool), + PR("lz", NULL, NULL, atool), + PR("xz", NULL, NULL, atool), + PR("rz", NULL, NULL, atool), + PR("lrz", NULL, NULL, atool), + PR("7z", NULL, NULL, atool), + PR("cpio", NULL, NULL, atool), + }; /* vim: set nowrap: */