X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc;h=aaaf87ce3e2156f9c9dd3916f622ed1ca1ed2414;hb=7f6a974222bd0f3936b61a8430d3e28a13307632;hp=07ba8cf12a011154e2d2969e8341edfe39d335a5;hpb=2f3bcb7c2dcd3899be80e83673a4625e0651dda1;p=distro-setup diff --git a/brc b/brc index 07ba8cf..aaaf87c 100644 --- a/brc +++ b/brc @@ -242,6 +242,24 @@ export SL_FILES_DIR=/b/ds/sl/.iank export SL_INFO_DIR=/p/sshinfo +### begin pyenv ### + +# this is adapted from things printed to term after install +# pyenv. commented for now since I'm not actually using pyenv. + +# export PYENV_ROOT="$HOME/.pyenv" +# command -v pyenv &>/dev/null || export PATH="$PYENV_ROOT/bin:$PATH" +# command -v pyenv &>/dev/null && eval "$(pyenv init -)" + + +# output showed this example for pyenv-virtualenv, which i have no idea +# what it is, but leaving it as a comment in case I end up doing python +# dev. + +#eval "$(pyenv virtualenv-init -)" +### end begin pyenv ### + + # * include files @@ -344,14 +362,15 @@ ccomp() { # # c: acts like cd, but stores directory history: you could alias to cd if you wanted. # b: go back -# f: go forward, cl to list recent directories and choose one. +# f: go forward +# cl: list recent directories and optionally choose one. # # Finer details you may want to skip: # -# We also define bl to print the list of back and forward directories. +# bl: print the list of back and forward directories. # -# We keep 2 stacks, forward and back. Unlike with a web browser, the -# forward stack is not erased when going somewhere new. +# We keep 2 stacks of directories, forward and back. Unlike with a web +# browser, the forward stack is not erased when going somewhere new. # # Recent directories are stored in ~/.cdirs. # @@ -453,7 +472,7 @@ f() { # printf "%s\n" "${_dir_forward[-1]}" # fi } -# cd list +# cl = cd list cl() { local i line input start local -A buttondirs alines @@ -500,8 +519,8 @@ cl() { c "${buttondirs[$input]}" fi } -# list the back and forward directories. i tend to forget this exists -# and use cl instead. +# bl = back list. lists the back and forward directories. i tend to +# forget this exists and use cl instead. bl() { local start i j max max=10 @@ -542,7 +561,7 @@ bl() { fi done } -## BEGIN functions to change directory better than cd ## +## END functions to change directory better than cd ## # pee do. run args as a command with output copied to syslog. # @@ -691,33 +710,6 @@ khcopy() { ssh-copy-id $1 } -# ya, hacky hardcoded hostnames in 2023. we could do better -hssh-update() { - local -a failed_hosts hosts - case $HOSTNAME in - sy|kd) - hosts=( - kd x3.office.fsf.org syw - ) - ;; - x3) - hosts=( - b8.nz sywg.b8.nz - ) - ;; - esac - for host in ${hosts[@]}; do - e $host - if ! scp /b/fai/fai/config/files/usr/local/bin/hssh/IANK root@$host:/usr/local/bin/hssh; then - failed_hosts+=($host) - fi - done - if (( ${#failed_hosts[@]} >= 1 )); then - echo failed_hosts=${failed_hosts[*]} - return 1 - fi -} - a() { local x x=$(readlink -nf "${1:-$PWD}") @@ -824,12 +816,17 @@ cf() { done } caf() { - # shellcheck disable=SC2033 - find -L "$@" -type f -not \( -name .svn -prune -o -name .git -prune \ - -o -name .hg -prune -o -name .editor-backups -prune \ - -o -name .undo-tree-history -prune \) \ - -exec bash -c '. ~/.bashrc; hr; echo "$1"; hr; cat "$1"' _ {} \; 2>/dev/null + local file +find -L "$@" -type f -not \( -name .svn -prune -o -name .git -prune \ + -o -name .hg -prune -o -name .editor-backups -prune \ + -o -name .undo-tree-history -prune \) -printf '%h\0%d\0%p\n' | sort -t '\0' -n \ + | awk -F '\0' '{print $3}' 2>/dev/null | while read -r file; do + hr + printf "%s\n" "$file" + hr + cat "$file" +done } ccomp cat cf caf @@ -841,6 +838,10 @@ clc() { echo "scale=3; $x" | bc -l } +cx() { + chmod +X "$@" + } + cam() { git commit -am "$*" } @@ -1389,9 +1390,6 @@ and works in older versions of git which did not have that." g() { - # todo: patch emacs so it will look elsewhere. this is kinda sad: - # https://emacs.stackexchange.com/questions/4253/how-to-start-emacs-with-a-custom-user-emacs-directory - local args gdb=false if [[ $EMACSDIR ]]; then @@ -1414,6 +1412,10 @@ g() { fi fi if [[ $EMACSDIR ]]; then + + # todo: we don't have to alter HOME since emacs 29+, we can set + # user-emacs-directory with the flag --init-directory + # Alter the path here, otherwise the nfs mount gets triggered on the # first path lookup when emacs is not being used. # shellcheck disable=SC2098 disable=SC2097 # false positive @@ -2179,7 +2181,7 @@ skq() { skgit() { local f for f in $(i s | awk '$1 == "modified:" {print $2}'); do - if [[ $(head -n1 "$f") == '#!/bin/bash'* ]]; then + if istext "$f" && [[ $(head -n1 "$f" 2>/dev/null) == '#!/bin/bash'* ]]; then sk $f ||: fi done @@ -2786,6 +2788,7 @@ vim() { # ls count. usage: pass a directory, get the number of files. # https://unix.stackexchange.com/questions/90106/whats-the-most-resource-efficient-way-to-count-how-many-files-are-in-a-director lsc() { + # shellcheck disable=SC2790 disable=SC2012 # intentional ls -Uq "$@"|wc -l } @@ -2818,6 +2821,14 @@ cm() { if $use_color && type -p tput &>/dev/null; then + # this is nice for a dark background terminal: + # https://github.com/trapd00r/LS_COLORS + # I would like if there was something similar for light. + + # the default bold green is too light. + # this explains the codes: https://gist.github.com/thomd/7667642 + export LS_COLORS=ex=1 + term_bold="$(tput bold)" term_red="$(tput setaf 1)" term_green="$(tput setaf 2)" @@ -2911,7 +2922,7 @@ if [[ $- == *i* ]]; then # we happen to be using that terminal, we can just keep working by # entering our next command, even a noop in order to dismiss the # notification, instead of having to explicitly dismiss it. - if [[ ${_psrun[@]} ]]; then + if [[ ${_psrun[*]} ]]; then if (( _psrun_count >= 1 )); then "${_psrun[@]}" ||: