X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=brc;h=cdfac012cb45c2c94a79d0999a14e2929cb8bcf2;hb=effc74a288ee7e4d0a83bbf3335ba10f95eb7b8a;hp=84386907d92e1f4f53683068ac70ec77d73d48c5;hpb=77f3e699ab79d597d22fc052ed03d25cf0ad02da;p=distro-setup diff --git a/brc b/brc index 8438690..cdfac01 100644 --- a/brc +++ b/brc @@ -107,12 +107,16 @@ if [[ $- == *i* ]]; then bind '"\C-i": self-insert' else + if [[ $KONSOLE_PROFILE_NAME ]]; then + TERM=xterm-256color + fi + # todo: not sure this works in sakura #stty werase undef #bind "\C-w": kill-region # sakura == xterm-256color # konsole == xterm - if [[ $TERM == "xterm" ]]; then + if [[ $TERM == xterm* ]]; then # control + arrow keys. for other terminals, see http://unix.stackexchange.com/questions/10806/how-to-change-previous-next-word-shortcut-in-bash bind '"\e[1;5C": shell-forward-word' 2>/dev/null bind '"\e[1;5D": shell-backward-word' 2>/dev/null @@ -157,6 +161,7 @@ HISTIGNORE='pass *:[ ]*:lom*:gram*' export BC_LINE_LENGTH=0 +export PROFILE_TASKS_TASK_OUTPUT_LIMIT=100 # note, if I use a machine I dont want files readable by all users, set # umask 077 # If fewer than 4 digits are entered, leading zeros are assumed @@ -164,8 +169,8 @@ export BC_LINE_LENGTH=0 C_DEFAULT_DIR=/a # i for insensitive. the rest from -# https://superuser.com/questions/366930/how-do-i-get-the-git-pager-to-clean-up-screen-output-after-exit -# and reading the man +# X means dont remove the current screenworth of output upon exit +# R means to show colors n things export LESS=RXi export SYSTEMD_LESS=$LESS @@ -178,13 +183,18 @@ unset _x for x in /a/bin/bash_unpublished/source-!(.#*); do source $x; done source $(dirname $(readlink -f $BASH_SOURCE))/path_add-function source /a/bin/log-quiet/logq-function -if [[ -e /a/bin/errhandle/err ]]; then - source /a/bin/errhandle/err - err-allow -fi -# if someone exported $SOE (stop on error), catch errors +# if someone exported $SOE (stop on error), catch errors. +# +# Note, on debian this results in the following warning when in ssh, +# hich I haven't figured out how to fix. It doesn't happen if we source +# after the shell has started +# +# bash: /usr/share/bashdb/bashdb-main.inc: No such file or directory +# bash: warning: cannot start debugger; debugging mode disabled if [[ $SOE ]]; then - err-catch + if [[ -e /a/bin/errhandle/err ]]; then + source /a/bin/errhandle/err + fi fi path_add /a/exe @@ -195,7 +205,7 @@ path_add /a/exe path_add --end ~/.local/bin path_add --ifexists --end /a/work/libremanage path_add --ifexists --end /a/opt/adt-bundle*/tools /a/opt/adt-bundle*/platform-tools -path_add --ifexists --end /a/opt/scancode-toolkit-2.9.2 +path_add --ifexists --end /a/opt/scancode-toolkit-3.0.2 export WCDHOME=/a # based on readme.debian. dunno if this will break on other distros. _x=/usr/share/wcd/wcd-include.sh @@ -313,7 +323,7 @@ khcopy() { } a() { - local x=$(readlink -nf "$@") + local x=$(readlink -nf "${1:-$PWD}") # yes, its kinda dumb that xclip/xsel cant do this in one invocation echo -n "$x" | xclip -selection clipboard echo -n "$x" | xclip @@ -331,14 +341,19 @@ anki() { ap() { # pushd in case current directory has an ansible.cfg file - pushd /a/xans + pushd /a/xans >/dev/null ansible-playbook -v -l ${1:- $(hostname -f)} site.yml - popd + popd >/dev/null } aw() { - pushd /a/work/ansible-configs + pushd /a/work/ansible-configs >/dev/null time ansible-playbook -v -i inventory adhoc.yml "$@" - popd + popd >/dev/null +} +ad() { + pushd /a/bin/distro-setup/a >/dev/null + ansible-playbook site.yml + popd >/dev/null } astudio() { @@ -378,12 +393,21 @@ bigclock() { } bpull() { + [[ $1 ]] || return 1 + c / + # run latest + install-my-scripts + switch-mail-host $1 $HOSTNAME +} +bpush() { + [[ $1 ]] || return 1 c / # run latest install-my-scripts - switch-mail-host $1 $HOSTNAMEs + switch-mail-host $HOSTNAME $1 } + btc() { local f=/etc/bitcoin/bitcoin.conf # importprivkey will timeout if using the default of 15 mins. @@ -609,7 +633,7 @@ envload() { # load environment from a previous: export > file # mail related etail() { - sudo tail -f /var/log/exim4/mainlog + sudo tail -F /var/log/exim4/mainlog -n 50 } f() { @@ -629,7 +653,7 @@ fa() { faf() { # find all files find -L $1 -not \( -name .svn -prune -o -name .git -prune \ -o -name .hg -prune -o -name .editor-backups -prune \ - -o -name .undo-tree-history -prune \) 2>/dev/null + -o -name .undo-tree-history -prune \) -type f 2>/dev/null } # one that comes with distros is too old for newer devices @@ -711,7 +735,7 @@ fdup() { local p fdroidcl update if fdroidcl search -u | grep ^org.fdroid.fdroid; then - fdroidcl upgrade org.fdroid.fdroid + fdroidcl install org.fdroid.fdroid sleep 5 fdroidcl update fi @@ -730,7 +754,7 @@ fdup() { done for p in ${!installed[@]}; do if ! ${updated[$p]:-true}; then - fdroidcl upgrade $p + fdroidcl install $p sleep 5 fi done @@ -967,6 +991,9 @@ grr() { # grep recursive grep --exclude-dir='*.emacs.d' --exclude-dir='*.git' -RiIP --color=auto "$@" fi } +rg() { + command rg -i -M 200 "$@" +} hstatus() { # do git status on published repos @@ -1078,21 +1105,6 @@ ifn() { } -if [[ $OS == Windows_NT ]]; then - # cygstart wrapper - cs() { - cygstart "$@" & - } - xp() { - explorer.exe . - } - # launch - o() { - local x=(*$1*) - (( ${#x[#]} > 1 )) && { echo "warning ${#x[#]} matches found"; sleep 1; } - cygstart *$1* & - } -else o() { if type gvfs-open &> /dev/null ; then gvfs-open "$@" @@ -1101,7 +1113,6 @@ else fi # another alternative is run-mailcap } -fi ipdrop() { s iptables -A INPUT -s $1 -j DROP @@ -1268,6 +1279,20 @@ net-dev-info() { } +nk() { + ser stop NetworkManager + ser stop dnsmasq + s resolvconf -d NetworkManager + ser start dnsmasq + s ifup br0 +} +ngo() { + s ifdown br0 + ser start NetworkManager + sleep 4 + s nmtui-connect +} + nopanic() { sudo tee -a /var/log/exim4/paniclog-archive /tmp/testsieve.log 2> >(tail) && sed -rn '/^Performed actions:/{n;n;p}' /tmp/testsieve.log | sort -u +_dosieve() { + sieve-filter "$@" 2> >(head; tail) >/tmp/testsieve.log && sed -rn '/^Performed actions:/,/^[^ ]/{/^ /p}' /tmp/testsieve.log | sort | uniq -c } - -# mail related -# plain sieve +# always run this first, edit the test files, then run the following testsieve() { - sieve-filter ~/sieve/main.sieve "$@" + _dosieve ~/sieve/maintest.sieve INBOX delete +} +runsieve() { + c ~/sieve; cp personal{test,}.sieve; cp lists{test,}.sieve + _dosieve ~/sieve/main.sieve -eW INBOX delete } # mail related @@ -1981,22 +2016,7 @@ wian() { wtr() { curl wttr.in/boston; } -xl() { - if pgrep gnome-screensav &>/dev/null; then - # this command actually starts gnome-screensaver if it isn\'t running. - # lololol, what crap - gnome-screensaver-command --exit &>/dev/null - fi - mate-screensaver-command --exit &>/dev/null - if ! pidof xscreensaver; then - pushd / - xscreensaver & - popd - # 1 was not long enough - sleep 3 - fi - xscreensaver-command -activate -} +xevkb() { xev -event keyboard; } # * misc stuff @@ -2134,7 +2154,7 @@ if [[ $- == *i* ]]; then case $return in - 0) ps_color="$(get_term_color blue)" + 0) ps_color="$(get_term_color purple)" ps_char='\$' ;; 1) ps_color="$(get_term_color green)" @@ -2252,22 +2272,34 @@ unset IFS # commented until i want to use it because it # noticably slows bash startup # -#if [[ $EUID != 0 && -e ~/.pyenv/bin ]]; then -# export PATH="~/.pyenv/bin:$PATH" -# eval "$(pyenv init -)" -# eval "$(pyenv virtualenv-init -)" -#fi +mypyenvinit () { + if [[ $EUID == 0 || ! -e ~/.pyenv/bin ]]; then + echo "error: dont be root. make sure pyenv is installed" + return 1 + fi + export PATH="~/.pyenv/bin:$PATH" + eval "$(pyenv init -)" + eval "$(pyenv virtualenv-init -)" +} export GOPATH=$HOME/go path_add $GOPATH/bin path_add /usr/local/go/bin -export ARDUINO_PATH=/a/opt/Arduino/build/linux/work +# I have the git repo and a release. either one should work. +# I have both because I was trying to solve an issue that +# turned out to be unrelated. +# ARDUINO_PATH=/a/opt/Arduino/build/linux/work +export ARDUINO_PATH=/a/opt/arduino-1.8.9 +# They want to be added to the start, but i think +# that should be avoided unless we really need it. path_add --end ~/.npm-global +path_add --end $HOME/.cargo/bin + # taken from default changes to bashrc and bash_profile path_add --end $HOME/.rvm/bin [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*