diff --git a/roles/home-cli/files/profile b/roles/home-cli/files/profile index 2e17c87..9d67538 100644 --- a/roles/home-cli/files/profile +++ b/roles/home-cli/files/profile @@ -31,9 +31,9 @@ if [ ! -d "$HOME/.local/bin" ] ; then install -d -m 0700 "$HOME/.local/bin" ; fi if [ -d /var/acp ] && ! [ -L /var/acp ] then - export ACP=/var/acp + export ACP=/var/acp else - export ACP="$HOME/data" + export ACP="$HOME/data" fi # Locale and language. @@ -41,11 +41,11 @@ fi export TZ=Europe/London # Can override this elsewhere if needed. if ! [ -f "$XDG_CONFIG_HOME/locale.conf" ] && [ -x /usr/bin/locale ] then - LANG="en_GB.UTF-8" /usr/bin/locale > "$XDG_CONFIG_HOME/locale.conf" + LANG="en_GB.UTF-8" /usr/bin/locale > "$XDG_CONFIG_HOME/locale.conf" fi if [ -r "$XDG_CONFIG_HOME/locale.conf" ] then - . "$XDG_CONFIG_HOME/locale.conf" + . "$XDG_CONFIG_HOME/locale.conf" fi # Desktop files (used by desktop environments within both X11 and Wayland) are @@ -54,96 +54,96 @@ fi _snap_xdg_path=/var/lib/snapd/desktop if [ -x /usr/lib/snapd/snapd ] && [ -n "${XDG_DATA_DIRS##*${_snap_xdg_path}}" ] && [ -n "${XDG_DATA_DIRS##*${_snap_xdg_path}:*}" ] then - XDG_DATA_DIRS="${XDG_DATA_DIRS}:${_snap_xdg_path}" + XDG_DATA_DIRS="${XDG_DATA_DIRS}:${_snap_xdg_path}" fi unset _snap_xdg_path # Bash-specific settings that will not work in other Bourne-compatible shells. if [ -n "$BASH_VERSION" ] then - set -o emacs - set -o noclobber - shopt -s histappend + set -o emacs + set -o noclobber + shopt -s histappend - bind '"\e[1;5C": forward-word' - bind '"\e[1;5D": backward-word' - bind '"\e[A": history-search-backward' - bind '"\e[B": history-search-forward' - bind 'set bell-style none' - bind 'set completion-ignore-case on' - bind 'set enable-bracketed-paste off' - export BASH_ENV="$HOME/.bashrc" + bind '"\e[1;5C": forward-word' + bind '"\e[1;5D": backward-word' + bind '"\e[A": history-search-backward' + bind '"\e[B": history-search-forward' + bind 'set bell-style none' + bind 'set completion-ignore-case on' + bind 'set enable-bracketed-paste off' + export BASH_ENV="$HOME/.bashrc" - if [ "$container" = flatpak ] - then - _acp_ps1_prefix="*" - fi - PS1="\[\033[01m\]${_acp_ps1_prefix}\u@\h\\$\[\033[00m\] " - unset _acp_ps1_prefix + if [ "$container" = flatpak ] + then + _acp_ps1_prefix="*" + fi + PS1="\[\033[01m\]${_acp_ps1_prefix}\u@\h\\$\[\033[00m\] " + unset _acp_ps1_prefix elif [ -n "$ZSH_VERSION" ] then - autoload -Uz compinit && compinit - autoload -Uz history-search-end - zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' - zle -N history-beginning-search-backward-end history-search-end - zle -N history-beginning-search-forward-end history-search-end - bindkey -e - bindkey "^[[1;5C" forward-word - bindkey "^[[1;5D" backward-word - bindkey "^[[3~" delete-char - bindkey "^[[A" history-beginning-search-backward-end - bindkey "^[[B" history-beginning-search-forward-end - bindkey "^[OA" history-beginning-search-backward-end - bindkey "^[OB" history-beginning-search-forward-end + autoload -Uz compinit && compinit + autoload -Uz history-search-end + zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' + zle -N history-beginning-search-backward-end history-search-end + zle -N history-beginning-search-forward-end history-search-end + bindkey -e + bindkey "^[[1;5C" forward-word + bindkey "^[[1;5D" backward-word + bindkey "^[[3~" delete-char + bindkey "^[[A" history-beginning-search-backward-end + bindkey "^[[B" history-beginning-search-forward-end + bindkey "^[OA" history-beginning-search-backward-end + bindkey "^[OB" history-beginning-search-forward-end - PS1="%B%n@%m%#%b " + PS1="%B%n@%m%#%b " else - # POSIX-compatible prompt. - if [ "$(uname -s)" = FreeBSD ] - then - bind "^W" ed-delete-prev-word - bind "^[[1;5C" em-next-word - bind "^[[1;5D" ed-prev-word - fi - PS1="$(id -un)@$(uname -n | sed 's/\..*$//')$ " + # POSIX-compatible prompt. + if [ "$(uname -s)" = FreeBSD ] + then + bind "^W" ed-delete-prev-word + bind "^[[1;5C" em-next-word + bind "^[[1;5D" ed-prev-word + fi + PS1="$(id -un)@$(uname -n | sed 's/\..*$//')$ " fi _acp_add_path () { - if [ -n "$1" ] && [ -d "$1" ] - then - case ":$PATH:" in - *:"$1":*) - return - ;; - *) - PATH="$PATH:$1" - export PATH - return - ;; - esac - fi + if [ -n "$1" ] && [ -d "$1" ] + then + case ":$PATH:" in + *:"$1":*) + return + ;; + *) + PATH="$PATH:$1" + export PATH + return + ;; + esac + fi } # First in the list means first in the path. PATH=/usr/bin for dir in "$HOME/.local/bin" \ - "$ACP/bin" \ - "$XDG_DATA_HOME/flatpak/exports/bin" \ - "$HOME/.cargo/bin" \ - "$XDG_DATA_HOME/gem/ruby/bin" \ - /usr/local/bin \ - /usr/local/sbin \ - /opt/local/bin \ - /opt/local/sbin \ - /var/lib/flatpak/exports/bin \ - /app/bin \ - /usr/sbin \ - /bin \ - /sbin + "$ACP/bin" \ + "$XDG_DATA_HOME/flatpak/exports/bin" \ + "$HOME/.cargo/bin" \ + "$XDG_DATA_HOME/gem/ruby/bin" \ + /usr/local/bin \ + /usr/local/sbin \ + /opt/local/bin \ + /opt/local/sbin \ + /var/lib/flatpak/exports/bin \ + /app/bin \ + /usr/sbin \ + /bin \ + /sbin do - _acp_add_path "$dir" + _acp_add_path "$dir" done umask 0022 @@ -155,35 +155,35 @@ export TIME_STYLE=long-iso # Used by GNU 'ls'. if [ "$(uname -s)" = Darwin ] then - # MacOS warns about switching from bash to zsh. Silence this. - export BASH_SILENCE_DEPRECATION_WARNING=1 + # MacOS warns about switching from bash to zsh. Silence this. + export BASH_SILENCE_DEPRECATION_WARNING=1 fi -if test -x /usr/bin/tty +if [ -x /usr/bin/tty ] then - GPG_TTY=$(tty) - export GPG_TTY + GPG_TTY=$(tty) + export GPG_TTY fi # Set up Vi/Vim. if command -v vim > /dev/null then - export EDITOR="vim -f" - alias vi=vim + export EDITOR="vim -f" + alias vi=vim else - export EDITOR=vi + export EDITOR=vi fi # Use root's cache instead of having one for root and one for the user. if [ "$(id -u)" -ne 0 ] && [ -x /usr/bin/dnf ] then - alias dnf="dnf --cacheonly --nogpgcheck" + alias dnf="dnf --cacheonly --nogpgcheck" fi # Old RHEL releases still have the original yum (not DNF). if [ -x /usr/bin/yum ] && [ ! -x /usr/bin/dnf ] then - alias dnf=yum + alias dnf=yum fi alias 7zencrypt="7z a -t7z -p -mhe" @@ -215,26 +215,26 @@ alias fr="LANG=fr_FR.UTF-8" # Alias dig to drill if dig is not installed. if [ -x /usr/bin/drill ] then - alias dig=drill + alias dig=drill fi # Set up Go. if [ -x "$ACP/opt/go/bin/go" ] || [ -x /usr/bin/go ] || [ -x /usr/local/bin/go ] then - export GOPROXY=https://proxy.golang.org - export GOPATH="$XDG_DATA_HOME/go" - if [ ! -d "$GOPATH" ] - then - mkdir -p "$GOPATH/bin" - mkdir -p "$GOPATH/pkg" - mkdir -p "$GOPATH/src" - fi - if [ -x "$ACP/opt/go/bin/go" ] - then - export GOROOT="$ACP/opt/go" - _acp_add_path "$GOROOT/bin" - fi - _acp_add_path "$GOPATH/bin" + export GOPROXY=https://proxy.golang.org + export GOPATH="$XDG_DATA_HOME/go" + if [ ! -d "$GOPATH" ] + then + mkdir -p "$GOPATH/bin" + mkdir -p "$GOPATH/pkg" + mkdir -p "$GOPATH/src" + fi + if [ -x "$ACP/opt/go/bin/go" ] + then + export GOROOT="$ACP/opt/go" + _acp_add_path "$GOROOT/bin" + fi + _acp_add_path "$GOPATH/bin" fi alias prun='podman run --rm --interactive --tty --security-opt label=disable --volume "$HOME":"$HOME" --volume "$XDG_RUNTIME_DIR":"$XDG_RUNTIME_DIR" --env XDG_RUNTIME_DIR="$XDG_RUNTIME_DIR" --env XDG_SESSION_TYPE=wayland --ipc host' @@ -243,166 +243,166 @@ alias pruncerts='prun --volume /etc/pki/ca-trust:/etc/pki/ca-trust:ro --volume / # Set up SSH agent if it's not already running. if command -v ssh-agent > /dev/null then - export SSH_AUTH_SOCK="${SSH_AUTH_SOCK:-$XDG_RUNTIME_DIR/ssh-agent.socket}" - export SSH_AGENT_PID="${SSH_AGENT_PID:-$XDG_RUNTIME_DIR/ssh-agent.pid}" - ssh-add -l > /dev/null 2>&1 - _acp_ssh_agent_exists=$? - if [ -S "$SSH_AUTH_SOCK" ] && [ $_acp_ssh_agent_exists -eq 2 ] - then - # Remove stale ssh-agent socket. - rm -f "$SSH_AUTH_SOCK" - fi - unset _acp_ssh_agent_exists - if [ ! -S "$SSH_AUTH_SOCK" ] - then - ssh-agent -a "$SSH_AUTH_SOCK" > /dev/null - fi + export SSH_AUTH_SOCK="${SSH_AUTH_SOCK:-$XDG_RUNTIME_DIR/ssh-agent.socket}" + export SSH_AGENT_PID="${SSH_AGENT_PID:-$XDG_RUNTIME_DIR/ssh-agent.pid}" + ssh-add -l > /dev/null 2>&1 + _acp_ssh_agent_exists=$? + if [ -S "$SSH_AUTH_SOCK" ] && [ $_acp_ssh_agent_exists -eq 2 ] + then + # Remove stale ssh-agent socket. + rm -f "$SSH_AUTH_SOCK" + fi + unset _acp_ssh_agent_exists + if [ ! -S "$SSH_AUTH_SOCK" ] + then + ssh-agent -a "$SSH_AUTH_SOCK" > /dev/null + fi fi # Make a directory and immediately change to it. mkcd () { - if [ $# -ne 1 ] - then - echo "mkcd: incorrect arguments (one directory required)." >&2 - return 1 - else - mkdir -p "$1" - cd "$1" || return - fi + if [ $# -ne 1 ] + then + echo "mkcd: incorrect arguments (one directory required)." >&2 + return 1 + else + mkdir -p "$1" + cd "$1" || return + fi } linapm () { - cat /sys/class/power_supply/BAT0/status - cat /sys/class/power_supply/BAT0/capacity + cat /sys/class/power_supply/BAT0/status + cat /sys/class/power_supply/BAT0/capacity } xa () { - out=$(xrandr --listactivemonitors | awk 'NR!=1{print " "$NF" "}') - for monitor in $out - do - m=$(echo "$monitor" | sed 's/ //g') - xrandr --output "$m" --auto - done + out=$(xrandr --listactivemonitors | awk 'NR!=1{print " "$NF" "}') + for monitor in $out + do + m=$(echo "$monitor" | sed 's/ //g') + xrandr --output "$m" --auto + done } emacsro () { - emacs "$1" -f view-mode + emacs "$1" -f view-mode } # Try to attach to an existing tmux session, else create a new one. tm () { - if tmux list-sessions > /dev/null 2>&1 - then - tmux attach-session - else - tmux new-session - fi + if tmux list-sessions > /dev/null 2>&1 + then + tmux attach-session + else + tmux new-session + fi } usermotd () { - # OS (kernel) name and version in reverse video. - printf "\033[7m$(uname -sr)\033[0m\n" + # OS (kernel) name and version in reverse video. + printf "\033[7m$(uname -sr)\033[0m\n" - # Distro name and version on Linux and macOS. - if [ -r /etc/os-release ] - then - echo " $(. /etc/os-release; echo "$NAME" "$VERSION")" - fi - if [ "$(uname -s)" = "Darwin" ] - then - echo " $(sw_vers -productName) $(sw_vers -productVersion)" - fi + # Distro name and version on Linux and macOS. + if [ -r /etc/os-release ] + then + echo " $(. /etc/os-release; echo "$NAME" "$VERSION")" + fi + if [ "$(uname -s)" = "Darwin" ] + then + echo " $(sw_vers -productName) $(sw_vers -productVersion)" + fi - # System uptime and load averages. - uptime + # System uptime and load averages. + uptime - # SSH keys. - if command -v ssh-add > /dev/null - then - ssh-add -l - fi + # SSH keys. + if command -v ssh-add > /dev/null + then + ssh-add -l + fi - # Language for the shell. - echo "LANG=$LANG" + # Language for the shell. + echo "LANG=$LANG" - # Timezone. - if [ -n "$TZ" ] - then - echo "TZ=$TZ" - elif [ -x /usr/bin/timedatectl ] && [ "$(systemctl is-system-running)" != offline ] - then - timedatectl show --property=Timezone | sed 's/Timezone=/TZ=/' - fi + # Timezone. + if [ -n "$TZ" ] + then + echo "TZ=$TZ" + elif [ -x /usr/bin/timedatectl ] && [ "$(systemctl is-system-running)" != offline ] + then + timedatectl show --property=Timezone | sed 's/Timezone=/TZ=/' + fi - # Shell name and version. - if [ -n "$BASH_VERSION" ] - then - echo "bash $BASH_VERSION" - elif [ -n "$ZSH_VERSION" ] - then - echo "zsh $ZSH_VERSION" - else - echo "SHELL=$SHELL" - fi + # Shell name and version. + if [ -n "$BASH_VERSION" ] + then + echo "bash $BASH_VERSION" + elif [ -n "$ZSH_VERSION" ] + then + echo "zsh $ZSH_VERSION" + else + echo "SHELL=$SHELL" + fi } simpletls () { - # Create a self-signed certificate with: - # openssl req -new -x509 \ - # -keyout $ACP/openssl/$(hostname)-key.pem \ - # -out $ACP/openssl/$(hostname-cert.pem - if [ "$1" = "-l" ] - then - openssl s_server -cert "$ACP/openssl/$(hostname)-cert.pem" -key "$HOME/data/openssl/$(hostname)-key.pem" -tls1_3 -port "$2" - else - openssl s_client -CAfile "$ACP/openssl/$1-cert.pem" -tls1_3 -connect "$1":"$2" - fi + # Create a self-signed certificate with: + # openssl req -new -x509 \ + # -keyout $ACP/openssl/$(hostname)-key.pem \ + # -out $ACP/openssl/$(hostname-cert.pem + if [ "$1" = "-l" ] + then + openssl s_server -cert "$ACP/openssl/$(hostname)-cert.pem" -key "$HOME/data/openssl/$(hostname)-key.pem" -tls1_3 -port "$2" + else + openssl s_client -CAfile "$ACP/openssl/$1-cert.pem" -tls1_3 -connect "$1":"$2" + fi } tlscheck () { - if [ -z "$1" ] - then - echo "Usage: tlscheck hostname:port" >&2 - else - openssl s_client -connect "$1" &2 + else + openssl s_client -connect "$1" &2 - echo " virtinst --pxe vmname" >&2 - echo " virtinst --import vmname" >&2 - return - ;; - *) - ;; - esac + case "$1" in + --help) + echo "Usage: virtinst --cdrom /path/to/cdrom.iso vmname" >&2 + echo " virtinst --pxe vmname" >&2 + echo " virtinst --import vmname" >&2 + return + ;; + *) + ;; + esac - virt-install --name $_acp_vm_name \ - --osinfo linux2022 \ - --boot uefi \ - --cdrom /usr/share/edk2/ovmf/UefiShell.iso \ - --disk /var/lib/libvirt/images/${_acp_vm_name}.qcow2,size=20 \ - --network type=direct,source=${_acp_vm_default_nic},source_mode=bridge \ - --graphics vnc \ - --console pty,target.type=virtio \ - --autoconsole none + virt-install --name $_acp_vm_name \ + --osinfo linux2022 \ + --boot uefi \ + --cdrom /usr/share/edk2/ovmf/UefiShell.iso \ + --disk /var/lib/libvirt/images/${_acp_vm_name}.qcow2,size=20 \ + --network type=direct,source=${_acp_vm_default_nic},source_mode=bridge \ + --graphics vnc \ + --console pty,target.type=virtio \ + --autoconsole none - unset _acp_vm_name - unset _acp_vm_default_nic + unset _acp_vm_name + unset _acp_vm_default_nic } if [ -r "$XDG_CONFIG_HOME/profile.local" ] then - . "$XDG_CONFIG_HOME/profile.local" + . "$XDG_CONFIG_HOME/profile.local" fi diff --git a/roles/home-cli/files/shrc b/roles/home-cli/files/shrc index aad6fca..9038883 100644 --- a/roles/home-cli/files/shrc +++ b/roles/home-cli/files/shrc @@ -1,20 +1,20 @@ #!/bin/sh if [ -r "$HOME/.profile" ] then - . "$HOME/.profile" + . "$HOME/.profile" fi case "$-" in *i*) - # Shell is interactive. - if [ -r /etc/profile.d/bash_completion.sh ] - then - . /etc/profile.d/bash_completion.sh - fi - usermotd - ;; + # Shell is interactive. + if [ -r /etc/profile.d/bash_completion.sh ] + then + . /etc/profile.d/bash_completion.sh + fi + usermotd + ;; *) - # Shell is not interactive. - return 1 - ;; + # Shell is not interactive. + return 1 + ;; esac