URI:
       shells: Refactor include logic - dotfiles - arsenal of config files, ready to be cloned in new (virtual) machines.
  HTML git clone git://git.drkhsh.at/dotfiles.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
       ---
   DIR commit 1f98c19046bc2768f2438c0b7d00123ae63ffdb0
   DIR parent 3731f5a787866aaad6f4464494a0fb931793f54c
  HTML Author: drkhsh <me@drkhsh.at>
       Date:   Wed,  1 Feb 2023 22:06:36 +0100
       
       shells: Refactor include logic
       
       Kicks .profile (conflicts with distro's .profile - and /etc/profile in
       Qubes OS too much) - and it won't be sourced when logged in over SSH (no
       login shell). Uses .env instead (sourced from each shell's rc).
       
       Correctly undefines the exists helper in all shells and moves it's
       definition too each shell's config to fix breakage when common functions
       are not installed.
       
       Diffstat:
         M bash/.bashrc                        |      13 +++++++++++--
         M fish/.config/fish/config.fish       |      12 ++++++++++--
         D fish/.config/fish/functions/_exist… |       3 ---
         M mksh/.mkshrc                        |       4 ++++
         A shell/.env                          |      33 +++++++++++++++++++++++++++++++
         M shell/.functions                    |       5 -----
         D shell/.profile                      |      48 -------------------------------
         D zsh/.zprofile                       |       2 --
         M zsh/.zshrc                          |      11 +++++++++--
       
       9 files changed, 67 insertions(+), 64 deletions(-)
       ---
   DIR diff --git a/bash/.bashrc b/bash/.bashrc
       @@ -11,13 +11,20 @@
        # ██████████║
        # ╚═════════╝
        
       +# █▓▒░ exists helper
       +_exists() {
       +        type $1 > /dev/null 2>&1
       +}
       +
        # █▓▒░ source shared stuff
       -[[ -f ~/.functions ]] && source ~/.functions
       +[[ -f ~/.env ]] && source ~/.env
        [[ -f ~/.aliases ]] && source ~/.aliases
       +[[ -f ~/.functions ]] && source ~/.functions
        
        # █▓▒░ qubes templates
       -[[ -f /etc/drkhsh.functions ]] && source /etc/drkhsh.functions
       +[[ -f /etc/drkhsh.env ]] && source /etc/drkhsh.env
        [[ -f /etc/drkhsh.aliases ]] && source /etc/drkhsh.aliases
       +[[ -f /etc/drkhsh.functions ]] && source /etc/drkhsh.functions
        
        # █▓▒░ general
        bind 'set bell-style none'
       @@ -37,3 +44,5 @@ fi
        # █▓▒░ starship prompt
        _exists starship && eval "$(starship init bash)"
        
       +# █▓▒░ undefine exists helper
       +unset -f _exists
   DIR diff --git a/fish/.config/fish/config.fish b/fish/.config/fish/config.fish
       @@ -14,6 +14,9 @@
        #   48                               @%
        #   '8         drkhsh <me@drkhsh.at> :"
        
       +# █▓▒░ exists helper
       +function _exists; type -q $argv; end
       +
        # █▓▒░ foreign-env plugin
        test -d ~/.config/fish/plugin-foreign-env/functions && \
                set fish_function_path $fish_function_path ~/.config/fish/plugin-foreign-env/functions
       @@ -22,10 +25,13 @@ test -d /etc/fish/plugin-foreign-env/functions && \
        
        # █▓▒░ source profile for compatibility
        fenv source /etc/profile
       -test -f ~/.profile && fenv source ~/.profile
        
       -# █▓▒░ aliases
       +# █▓▒░ shared enviornment & aliases
       +test -f ~/.env && fenv source ~/.env
        test -f ~/.aliases && source ~/.aliases
       +
       +# █▓▒░ qubes templates
       +test -f ~/etc/drkhsh.env && source /etc/drkhsh.env
        test -f ~/etc/drkhsh.aliases && source /etc/drkhsh.aliases
        
        # █▓▒░ machine-specific fish config
       @@ -35,3 +41,5 @@ test -f ~/.config/fish/config.fish.local && source ~/.config/fish/config.fish.lo
        set -U fish_greeting "🐟"
        starship init fish | source
        
       +# █▓▒░ undefine exists helper
       +functions -e _exists
   DIR diff --git a/fish/.config/fish/functions/_exists.fish b/fish/.config/fish/functions/_exists.fish
       @@ -1,3 +0,0 @@
       -# █▓▒░ exists helper
       -function _exists; type -q $argv; end
       -
   DIR diff --git a/mksh/.mkshrc b/mksh/.mkshrc
       @@ -14,10 +14,12 @@
        # █▓▒░ source shared stuff
        [[ -f ~/.functions ]] && source ~/.functions
        [[ -f ~/.aliases ]] && source ~/.aliases
       +[[ -f ~/.env ]] && source ~/.env
        
        # █▓▒░ qubes templates
        [[ -f /etc/drkhsh.functions ]] && source /etc/drkhsh.functions
        [[ -f /etc/drkhsh.aliases ]] && source /etc/drkhsh.aliases
       +[[ -f /etc/drkhsh.env ]] && source /etc/drkhsh.env
        
        # █▓▒░ history
        HISTFILE=~/.mksh_history
       @@ -31,3 +33,5 @@ fi
        # █▓▒░ prompt
        _exists polyglot && source polyglot
        
       +# █▓▒░ undefine exists helper
       +unset -f _exists
   DIR diff --git a/shell/.env b/shell/.env
       @@ -0,0 +1,33 @@
       +# █▓▒░ pager
       +if type less >/dev/null 2>&1; then
       +        PAGER=less
       +        LESSHISTFILE=-
       +        export PAGER LESSHISTFILE
       +fi
       +
       +export MANWIDTH=80
       +type systemctl >/dev/null 2>&1 && export SYSTEMD_PAGER=
       +
       +# █▓▒░ editor
       +if [ -z "$VISUAL" ]; then
       +          type vim >/dev/null 2>&1 && VISUAL=vim || VISUAL=vi
       +          export VISUAL
       +fi
       +EDITOR=$VISUAL
       +export EDITOR
       +
       +# █▓▒░ include user PATH
       +if [ -d "$HOME/bin" ] ; then
       +        PATH="$HOME/bin:$PATH"
       +fi
       +if [ -d "$HOME/.local/bin" ] ; then
       +        PATH="$HOME/.local/bin:$PATH"
       +fi
       +export PATH
       +
       +# █▓▒░ include cargo path if necessary
       +type cargo >/dev/null 2>&1 && export PATH=$PATH:/home/drkhsh/.cargo/bin
       +
       +# █▓▒░ machine-specific env
       +[ ! -r "$HOME/.env.local" ] || . "$HOME/.env.local"
       +
   DIR diff --git a/shell/.functions b/shell/.functions
       @@ -1,8 +1,3 @@
       -# █▓▒░ exists helper
       -_exists() {
       -        type $1 > /dev/null
       -}
       -
        # █▓▒░ deeply nested folders
        up() {
                if [[ "$#" < 1 ]] ; then
   DIR diff --git a/shell/.profile b/shell/.profile
       @@ -1,48 +0,0 @@
       -#                       ___ __ __
       -#    .-----.----.-----.'  _|__|  |.-----.
       -# .-.|  _  |   _|  _  |   _|  |  ||  -__|
       -# |_||   __|__| |_____|__| |__|__||_____|
       -#    |__|          drkhsh <me@drkhsh.at>
       -
       -# █▓▒░ pager
       -if type less >/dev/null 2>&1; then
       -        PAGER=less
       -        LESSHISTFILE=-
       -        export PAGER LESSHISTFILE
       -fi
       -
       -export MANWIDTH=80
       -type systemctl >/dev/null 2>&1 && export SYSTEMD_PAGER=
       -
       -# █▓▒░ editor
       -if [ -z "$VISUAL" ]; then
       -          type vim >/dev/null 2>&1 && VISUAL=vim || VISUAL=vi
       -          export VISUAL
       -fi
       -EDITOR=$VISUAL
       -export EDITOR
       -
       -# █▓▒░ if running bash
       -if [ -n "$BASH_VERSION" ]; then
       -        if [ -f "$HOME/.bashrc" ]; then
       -                . "$HOME/.bashrc"
       -        fi
       -fi
       -
       -# █▓▒░ include user PATH
       -if [ -d "$HOME/bin" ] ; then
       -        PATH="$HOME/bin:$PATH"
       -fi
       -if [ -d "$HOME/.local/bin" ] ; then
       -        PATH="$HOME/.local/bin:$PATH"
       -fi
       -
       -# █▓▒░ include cargo path if necessary
       -type cargo >/dev/null 2>&1 && export PATH=$PATH:/home/drkhsh/.cargo/bin
       -
       -# █▓▒░ machine-specific profile
       -[ ! -r "$HOME/.profile.local" ] || . "$HOME/.profile.local"
       -if [ -r "$HOME/.env.local" ]; then
       -        eval "`command grep '^[A-Z].*=' "$HOME/.env.local"|sed -e 's/^/export /'`"
       -fi
       -
   DIR diff --git a/zsh/.zprofile b/zsh/.zprofile
       @@ -1,2 +0,0 @@
       -# █▓▒░ load common shell profile
       -[[ -e ~/.profile ]] && emulate sh -c '. ~/.profile'
   DIR diff --git a/zsh/.zshrc b/zsh/.zshrc
       @@ -11,13 +11,20 @@
        # ██████████║
        # ╚═════════╝
        
       +# █▓▒░ exists helper
       +_exists() {
       +        type $1 > /dev/null 2>&1
       +}
       +
        # █▓▒░ source shared stuff
       -[[ -f ~/.functions ]] && source ~/.functions
       +[[ -f ~/.env ]] && source ~/.env
        [[ -f ~/.aliases ]] && source ~/.aliases
       +[[ -f ~/.functions ]] && source ~/.functions
        
        # █▓▒░ qubes templates
       -[[ -f /etc/drkhsh.functions ]] && source /etc/drkhsh.functions
       +[[ -f /etc/drkhsh.env ]] && source /etc/drkhsh.env
        [[ -f /etc/drkhsh.aliases ]] && source /etc/drkhsh.aliases
       +[[ -f /etc/drkhsh.functions ]] && source /etc/drkhsh.functions
        
        # █▓▒░ general
        setopt nobeep