dot/gpg.conf.m4, dot/gpg-agent.conf, Makefile: Adopt GnuPG configuration.
[profile] / bin / remote-slideshow
1 #! /bin/sh -e
2
3 case $#,$2 in
4 0,* | 1,*) ok=nil ;;
5 *,*:*) ok=t ;;
6 *) ok=nil ;;
7 esac
8 case $ok in
9 nil) echo >&2 "usage: $0 DIR,... HOST:DISP [CMD ARGS ...]"; exit 2; ;;
10 esac
11 dirs=$1 host=${2%:*} dpy=${2##*:}; shift 2
12 case $#,$1 in
13 0, | 1,:slideshow)
14 set -- /usr/lib/xscreensaver/glslideshow -duration 10 -pan 10 \
15 -xrm "'*desktopGrabber: ./getimg %s'"
16 ;;
17 1,:photopile)
18 set -- /usr/lib/xscreensaver/photopile -no-titles -no-polaroid -shadows \
19 -xrm "'*desktopGrabber: ./getimg %s'"
20 ;;
21 esac
22
23 t=$(mktemp -d "${TMPDIR-/tmp}/remote-slidesshow.XXXXXXXX")
24 mkfifo "$t/pipe"
25 exec 3<>"$t/pipe"
26 rm -rf "$t"
27
28 ssh -ax "$host" "
29 set -e
30 tmp=\$(mktemp -d \"\${TMPDIR-/tmp}/remote-slideshow.XXXXXXXX\")
31 trap 'cd / && rm -rf \$tmp' EXIT INT TERM HUP
32 cd \$tmp
33 IMAGEFILE=\$tmp/img; export IMAGEFILE
34 DISPLAY=:$dpy; export DISPLAY
35 exec 3<&0 4>&1
36 cat >getimg <<'EOF'
37 #! /bin/sh -e
38 rm -f img
39 echo \"\$IMAGEFILE\" >&4
40 xscreensaver-command -deactivate >/dev/null 2>&1 || :
41 IFS= read -r f <&3
42 exec xscreensaver-getimage -directory \"\${IMAGEFILE%/*}\" -file img \"\$@\"
43 EOF
44 chmod +x getimg
45 $*" <&3 |
46 while IFS= read -r rdir; do
47 set -- \( -false
48 for e in jpg jpeg pjpeg pjpg png gif tif tiff xbm xpm; do
49 set -- "$@" -o -name "*.$e"
50 done
51 set -- "$@" \) -type f -print -o -type d \( -false
52 dd=$dirs
53 while :; do
54 case $dd in
55 "") break ;;
56 *,*) d=${dd##*,} dd=${dd%,*} ;;
57 *) d=$dd dd= ;;
58 esac
59 for i in $(find "$d" -name .slideshow-ignore -type f -print); do
60 while IFS= read -r line; do
61 case $line in \#*) continue ;; esac
62 set -- "$@" -o -path "${i%/*}/$line"
63 done <"$i"
64 done
65 set -- "$d" "$@"
66 done
67 set -- "$@" \) -prune
68 f=$(find "$@" | shuf -n1)
69 echo "$f"
70 scp "$f" "$host:$rdir" >/dev/null 2>&1
71 echo done >&3
72 done