X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc2;h=5cd83b2223641705ff2762871aee5b22385f33c4;hb=2b981100a8b45f117d6f5c165404937f3c917e8f;hp=9bc89d5158c499ff9892e08c26e1f193f5dcc690;hpb=0249e646cbed14fc191827f95a05044287d419ad;p=distro-setup diff --git a/brc2 b/brc2 index 9bc89d5..5cd83b2 100644 --- a/brc2 +++ b/brc2 @@ -1079,26 +1079,40 @@ lom() { local l base if [[ $1 == /* ]]; then base=${1##*/} - if mountpoint /mnt/$base; then + if mountpoint -q /mnt/$base; then return 0 fi - l=$(sudo losetup -f) - sudo losetup $l $1 - if ! sudo cryptsetup luksOpen $l $base; then - sudo losetup -d $l - return 1 + l=$(losetup -j $1 | sed -rn 's/^([^ ]+): .*/\1/p' | head -n1 ||:) + if [[ ! $l ]]; then + l=$(sudo losetup -f) + m sudo losetup $l $1 + fi + if ! sudo cryptsetup status /dev/mapper/$base &>/dev/null; then + if ! sudo cryptsetup luksOpen $l $base; then + m sudo losetup -d $l + return 1 + fi fi - sudo mkdir -p /mnt/$base - sudo mount /dev/mapper/$base /mnt/$base - sudo chown $USER:$USER /mnt/$base + m sudo mkdir -p /mnt/$base + m sudo mount /dev/mapper/$base /mnt/$base + m sudo chown $USER:$USER /mnt/$base else base=$1 if mountpoint /mnt/$base &>/dev/null; then - sudo umount /mnt/$base + m sudo umount /mnt/$base + fi + if sudo cryptsetup status /dev/mapper/$base &>/dev/null; then + if ! m sudo cryptsetup luksClose /dev/mapper/$base; then + echo lom: failed cryptsetup luksClose /dev/mapper/$base + return 1 + fi + fi + l=$(losetup -l --noheadings | awk '$6 ~ /\/'$1'$/ {print $1}') + if [[ $l ]]; then + m sudo losetup -d $l + else + echo lom: warning: no loopback device found fi - l=$(sudo cryptsetup status /dev/mapper/$base|sed -rn 's/^\s*device:\s*(.*)/\1/p') - sudo cryptsetup luksClose /dev/mapper/$base || return 1 - sudo losetup -d $l fi } @@ -1252,6 +1266,9 @@ ngo() { otp() { oathtool --totp -b "$*" | xclip -selection clipboard } +j() { + "$@" |& pee "xclip -r -selection clipboard" +} pakaraoke() { @@ -1464,6 +1481,29 @@ runsieve() { sed -r '/^info: filtering:/{h;d};/^info: msgid=$/N;/^info: msgid=.*left message in mailbox [^ ]+$/d;/^info: msgid=/{H;g};/^info: message kept in source mailbox.$/d' /tmp/testsieve.log } +# usage: +# alertme SUBJECT +# printf "subject\nbody\n" | alertme +alertme() { + if [[ -t 0 ]]; then + exim -t <