aboutsummaryrefslogblamecommitdiff
path: root/sh/profile.d/welcome.sh
blob: 19231c2e4c29ecba3a7ca17c500f45d80fb9acde (plain) (tree)
1
2
3
4
5
6
7
8
9








                              

                                     
 
                                                           
 

                               
                                                                  
     

                    
                             



                                                                     
                             
              
          











                                                      



                                                     
          



                                             
                                                

          
 
# Only if shell is interactive
case $- in
    *i*) ;;
    *) return ;;
esac

# Only if not in a tmux window
[ -z "$TMUX" ] || return

# Only if ~/.hushlogin doesn't exist
! [ -e "$HOME"/.hushlogin ] || return

# Run all of this in a subshell to clear it away afterwards
(
    # Temporary helper function
    welcome() {
        test -e "${XDG_CONFIG_HOME:-"$HOME"/.config}"/welcome/"$1"
    }

    # Show a fortune
    if welcome fortune ; then
        if [ -z "$FORTUNE_PATH" ] ; then
            FORTUNE_PATH=${XDG_DATA_HOME:-$HOME}/.local/share/fortune
            set -- "$FORTUNE_PATH"/*.dat
            if ! [ -e "$1" ] ; then
                FORTUNE_PATH=
            fi
        fi
        fortune -s "$FORTUNE_PATH"
        printf '\n'
    fi

    # Print today's reminders with asterisks
    if welcome rem ; then
        rem -hq | sed 's/^/* /'
        printf '\n'
    fi

    # Run verse(1) if we haven't seen it already today
    if welcome verse ; then
        cache=${XDG_CACHE_HOME:-$HOME/.cache}/welcome
        mkdir -p -- "$cache" || return
        if [ -f "$cache"/verse ] ; then
            read -r last <"$cache"/verse
        fi
        now=$(date +%Y%m%d)
        if [ "$now" -gt "${last:-0}" ] ; then
            verse
            printf '\n'
            printf '%s\n' "$now" >"$cache"/verse
        fi
    fi
)