#!/usr/bin/env sh
|
|
|
|
cleanup() {
|
|
rm -r "$LF_UEBERZUG_TEMPDIR" 2>/dev/null
|
|
kill $ueberzugpid 2>/dev/null
|
|
}
|
|
|
|
export LF_UEBERZUG_TEMPDIR="$(mktemp -d -t lf-ueberzug-XXXXXX)"
|
|
trap cleanup INT
|
|
|
|
export LF_UEBERZUG_FIFO="$LF_UEBERZUG_TEMPDIR/fifo"
|
|
mkfifo "$LF_UEBERZUG_FIFO"
|
|
tail -f "$LF_UEBERZUG_FIFO" | ueberzug layer --silent &
|
|
ueberzugpid=$!
|
|
|
|
last_dir="$([ ! -f $XDG_RUNTIME_DIR/lf-last-dir ] || cat $XDG_RUNTIME_DIR/lf-last-dir)"
|
|
|
|
|
|
fid="$(mktemp)"
|
|
|
|
prev=$(pwd)
|
|
cd $last_dir
|
|
lf -command '$printf $id > '"$fid"'' -last-dir-path=$XDG_RUNTIME_DIR/lf-last-dir "$@"
|
|
cd $prev
|
|
id="$(cat "$fid")"
|
|
archivemount_dir="$XDG_RUNTIME_DIR/__lf_archivemount_$id"
|
|
if [ -f "$archivemount_dir" ]; then
|
|
cat "$archivemount_dir" | \
|
|
while read -r line; do
|
|
sudo umount "$line"
|
|
rmdir "$line"
|
|
done
|
|
rm -f "$archivemount_dir"
|
|
fi
|
|
if [ -f "$tmp" ]; then
|
|
dir="$(cat "$tmp")"
|
|
rm -f "$tmp"
|
|
if [ -d "$dir" ]; then
|
|
if [ "$dir" != "$(pwd)" ]; then
|
|
cd "$dir"
|
|
fi
|
|
fi
|
|
fi
|
|
cleanup
|