e621: fix order for pools
[fanfix.git] / src / jexer / examples / imgls
CommitLineData
977b473d
KL
1#!/bin/bash
2
3# This is a modified version of the 'imgls' from iTerm2 located at
4# https://iterm2.com/utilities/imgls, modified to emit images with the
5# Jexer image protocol.
6
7# tmux requires unrecognized OSC sequences to be wrapped with DCS tmux;
8# <sequence> ST, and for all ESCs in <sequence> to be replaced with ESC ESC. It
9# only accepts ESC backslash for ST.
10function print_osc() {
11 if [ x"$TERM" = "xscreen" ] ; then
12 printf "\033Ptmux;\033\033]"
13 else
14 printf "\033]"
15 fi
16}
17
18function check_dependency() {
19 if ! (builtin command -V "$1" > /dev/null 2>& 1); then
20 echo "imgcat: missing dependency: can't find $1" 1>& 2
21 exit 1
22 fi
23}
24
25# More of the tmux workaround described above.
26function print_st() {
27 if [ x"$TERM" = "xscreen" ] ; then
28 printf "\a\033\\"
29 else
30 printf "\a"
31 fi
32}
33
34function list_file() {
35 fn=$1
36 test -f "$fn" || return 0
37
38 if [ "${fn: -4}" == ".png" ]; then
39 print_osc
40 printf '444;1;1;'
41 base64 < "$fn"
42 print_st
43 elif [ "${fn: -4}" == ".jpg" ]; then
44 print_osc
45 printf '444;2;1;'
46 base64 < "$fn"
47 print_st
48 fi
49}
50
51check_dependency base64
52
53if [ $# -eq 0 ]; then
54 for fn in *
55 do
56 list_file "$fn"
57 done < <(ls -ls)
58else
59 for fn in "$@"
60 do
61 list_file "$fn"
62 done
63fi
64