|
|
- #!/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
|