mrrl-logincaps

MRRL version of logincaps
git clone https://ccx.te2000.cz/git/mrrl-logincaps
Log | Files | Refs

commit 49dd7acfe4f2a7cc2d693cef778069ef0c6ed05e
parent 1a0a6ea394212394806aa1e64c8a970c52467933
Author: Jan Pobrislo <ccx@webprojekty.cz>
Date:   Wed, 16 Dec 2020 04:56:25 +0100

Factor out repeated pathnames.
Diffstat:
Mbin/zshaskpass_lock | 30+++++++++++++++---------------
1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/bin/zshaskpass_lock b/bin/zshaskpass_lock @@ -23,6 +23,7 @@ typeset -gA fds #fi if [[ $TTY == /dev/tty[1234] ]]; then + typeset -g X X=$[ ${TTY#/dev/tty} + 4 ] fi @@ -42,14 +43,15 @@ coproc_args=( #"$@" ) if [[ -n $X ]]; then - coproc_args+=( tail -F /run/containers/xsession.$X.$USER/run/uncaught-logs/current ) - typeset -g plumber_fifo terminal_exec_socket terminal_el - plumber_fifo=/run/containers/xsession.$X.$USER/run/plumber_fifo - # exec_socket=$HOME/chome/xsession.$[ ${TTY#/dev/tty} + 4 ]/exec/socket - terminal_exec_socket=/run/containers/xsession.$[ ${TTY#/dev/tty} + 4 ].$USER/exec/urxvt + typeset -g plumber_fifo terminal_exec_socket terminal_el x_container_service x_container_tmpfs + x_container_tmpfs=/run/containers/xsession.$X.$USER + x_container_service=/run/service/container.xsession.$X.$USER + plumber_fifo=$x_container_tmpfs/run/plumber_fifo + terminal_exec_socket=$x_container_tmpfs/exec/urxvt #terminal_el="redirfd -w 1 /dev/null redirfd -w 2 /dev/null s6-sudo ${(qqq)${exec_socket:A}} fdmove 3 0 redirfd -r 0 /dev/null background { urxvt -pty-fd 3 }" terminal_el="redirfd -w 1 /dev/null redirfd -w 2 /dev/null s6-sudo ${(qqq)terminal_exec_socket:A}" terminal_env=rxvt-unicode # the TERM variable used + coproc_args+=( tail -F $x_container_tmpfs/run/uncaught-logs/current ) else coproc_args+=( tail -F /run/user/$USER.logs/current ) fi @@ -74,9 +76,9 @@ logincap() { lock() { ssh-add -D || die "Error removing identities" - s6-svc -o -wu -T 3000 /run/containers/xsession.$X.$USER/run/service/screen-locker/ || "Failed to bring up screen locker" - s6-svstat /run/containers/xsession.$X.$USER/run/service/screen-locker/ - s6-svlisten1 -d /run/containers/xsession.$X.$USER/run/service/screen-locker/ zsh -c "read -sk 1 $'?Session locked, press enter to unlock.\n' || exit 98; until ssh-add -c; do sleep 2; read -sk 1 $'?\nUnlock failed, press enter to try again.\n' || exit 98; done; if ssh-add -l >/dev/null; then printf '%s\n' 'Success, stopping screen locker'; s6-svc -d '/run/containers/xsession.$X.$USER/run/service/screen-locker/'; fi" + s6-svc -o -wu -T 3000 $x_container_tmpfs/run/service/screen-locker/ || "Failed to bring up screen locker" + s6-svstat $x_container_tmpfs/run/service/screen-locker/ + s6-svlisten1 -d $x_container_tmpfs/run/service/screen-locker/ zsh -c "read -sk 1 $'?Session locked, press enter to unlock.\n' || exit 98; until ssh-add -c; do sleep 2; read -sk 1 $'?\nUnlock failed, press enter to try again.\n' || exit 98; done; if ssh-add -l >/dev/null; then printf '%s\n' 'Success, stopping screen locker'; s6-svc -d '$x_container_tmpfs/run/service/screen-locker/'; fi" ssh-add -l >/dev/null || die "Failed to load SSH agent identities (screen locker died?), exiting." } @@ -107,11 +109,9 @@ cmd() { ('c '*) logincap ${1#c };; (x) - local X - X=$[ ${TTY#/dev/tty} + 4 ] logincap X\ $X - s6-svc -wu -o /run/service/container.xsession.$X.$USER - s6-svstat /run/service/container.xsession.$X.$USER + s6-svc -wu -o $x_container_service + s6-svstat $x_container_service setup-plumber-listener ;; (off|poweroff) @@ -130,7 +130,7 @@ cmd() { lock ;; (exit) - true >/run/user/$USER/X$[ ${TTY#/dev/tty} + 4 ]/fifo + true >/run/user/$USER/X$X/fifo keep_running=0 ;; (shell) @@ -165,8 +165,8 @@ read-plumber-message() { logincap chvt X ;; (exit) - true >/run/user/$USER/X$[ ${TTY#/dev/tty} + 4 ]/fifo - s6-svc -wd -di -T 1 /run/service/container.xsession.$X.$USER + true >/run/user/$USER/X$X/fifo + s6-svc -wd -di -T 1 $x_container_service s6-svc -wd -d -T 1 /run/service/X$X keep_running=0 ;;