From 14c14778f2c85fdf18f39f3c412c087f9b599c6c Mon Sep 17 00:00:00 2001 From: Dustin Kirkland Date: Sat, 22 Oct 2011 02:11:27 -0500 Subject: [PATCH] * usr/lib/byobu/.dirs: - use /dev/shm for cache, LP: #872551 --- debian/changelog | 2 ++ usr/lib/byobu/.dirs | 34 ++++++++++++++++++++++------------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/debian/changelog b/debian/changelog index 42a0e23c..9d86fdeb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -16,6 +16,8 @@ byobu (4.43) unreleased; urgency=low * usr/bin/byobu-launcher-install, usr/bin/byobu-launcher-uninstall: - LP: #861534 - ensure launcher command removed from each file before installing + * usr/lib/byobu/.dirs: + - use /dev/shm for cache, LP: #872551 [ Daniel Hahler ] * usr/bin/byobu, usr/bin/byobu-launcher-install, usr/bin/byobu- diff --git a/usr/lib/byobu/.dirs b/usr/lib/byobu/.dirs index da9e4d21..51228edd 100755 --- a/usr/lib/byobu/.dirs +++ b/usr/lib/byobu/.dirs @@ -38,17 +38,27 @@ fi [ -r "$BYOBU_CONFIG_DIR/socketdir" ] && . "$BYOBU_CONFIG_DIR/socketdir" # Create and export the runtime cache directory -if [ -d "$XDG_CACHE_HOME" ]; then - # Use XDG, as some users insist on such nonsense :-) - export BYOBU_RUN_DIR="$XDG_CACHE_HOME/$PKG" -elif [ -d "$SOCKETDIR/S-$USER" ]; then - # But for FAR better performance, use a tmpfs if available - export BYOBU_RUN_DIR="$SOCKETDIR/S-$USER/$PKG" -elif [ -n "$TMUX" ] && [ d=$(dirname "$TMUX") ] && [ -d "$d" ]; then - # Or perhaps try the tmux tmpdir - export BYOBU_RUN_DIR="$d" - d= +if [ -w /dev/shm ]; then + # Use shm for performance, if possible + if [ -z "$BYOBU_RUN_DIR" ]; then + for i in /dev/shm/$PKG-$USER-*; do + if [ -d "$i" ] && [ -O "$i" ]; then + export BYOBU_RUN_DIR="$i" + break + fi + done + fi + # Still empty, make a new one + if [ ! -d "$BYOBU_RUN_DIR" ] || [ ! -O "$BYOBU_RUN_DIR" ]; then + export BYOBU_RUN_DIR=$(mktemp -d /dev/shm/$PKG-$USER-XXXXXXXX) + fi else - # But if not, we'll use a cache directory - export BYOBU_RUN_DIR="$HOME/.cache/$PKG" + # For distros that don't have a /dev/shm, use local disk + if [ -d "$XDG_CACHE_HOME" ]; then + # Use XDG, as some users insist on such nonsense :-) + export BYOBU_RUN_DIR="$XDG_CACHE_HOME/$PKG" + else + # But if not, we'll use a cache directory + export BYOBU_RUN_DIR="$HOME/.cache/$PKG" + fi fi