diff options
author | EuAndreh <eu@euandre.org> | 2022-08-12 19:09:52 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2022-08-12 19:09:52 -0300 |
commit | 4d813084363593037f3d0aaa93916730901dc529 (patch) | |
tree | 00e51dcd6124d5b6f26c6dc3aff9df41d734b124 /etc | |
parent | etc/ranger/rc.conf: Add key bindings (diff) | |
download | dotfiles-4d813084363593037f3d0aaa93916730901dc529.tar.gz dotfiles-4d813084363593037f3d0aaa93916730901dc529.tar.xz |
etc/{bash => sh}/rc: Separate Bash-specific code, remove unused code
Diffstat (limited to 'etc')
-rw-r--r-- | etc/sh/rc (renamed from etc/bash/rc) | 250 |
1 files changed, 102 insertions, 148 deletions
@@ -1,9 +1,8 @@ #!/bin/sh -ln -fs .profile ~/.bashrc export ENV=~/.profile -XDG_PREFIX=~/.usr +export XDG_PREFIX=~/.usr export XDG_CACHE_HOME="$XDG_PREFIX/var/cache" export XDG_CONFIG_HOME="$XDG_PREFIX/etc" export XDG_DATA_HOME="$XDG_PREFIX/share" @@ -13,23 +12,46 @@ export XDG_DATA_DIRS="$XDG_DATA_HOME/flatpak/exports/share:/var/lib/flatpak/expo mkdir -p \ - "$XDG_CONFIG_HOME" \ - "$XDG_CACHE_HOME" \ - "$XDG_DATA_HOME" \ - "$XDG_STATE_HOME" \ - "$XDG_LOG_HOME" + "$XDG_CONFIG_HOME" \ + "$XDG_CACHE_HOME" \ + "$XDG_DATA_HOME" \ + "$XDG_STATE_HOME" \ + "$XDG_LOG_HOME" \ + "$XDG_CACHE_HOME/euandreh" \ + "$XDG_DATA_HOME/euandreh" \ + "$XDG_STATE_HOME/euandreh" \ + "$XDG_LOG_HOME/euandreh" GUIX_PROFILE="$XDG_CONFIG_HOME"/guix/current if [ -e "$GUIX_PROFILE"/etc/profile ]; then . "$GUIX_PROFILE"/etc/profile fi -HISTSIZE=-1 -HISTFILE="$XDG_STATE_HOME/bash-history" -HISTCONTROL=ignorespace:ignoredups +# FIXME +idempotent_path_add() { + case "$(eval "echo \$$1")" in + *"$2"*) + ;; + *) + eval "export $1=$2\${$1:+:}\${$1:-}" + ;; + esac +} +export A="$HOME${A:+:}${A:-}" +idempotent_path_add B "$HOME" +export XDG_DATA_DIRS="$XDG_DATA_HOME/flatpak/exports/share:/var/lib/flatpak/exports/share${XDG_DATA_DIRS:+:}${XDG_DATA_DIRS:-}" +# idempotent_path_add XDG_DATA_DIRS "$XDG_DATA_HOME/flatpak/exports/share" + + + +# +# +# +export HISTSIZE=-1 +export HISTFILE="$XDG_STATE_HOME/sh-history" export SRC=~/dev -export EDITOR='vi' +export EDITOR='e' export VISUAL="$EDITOR" export PAGER='less -R' export BROWSER='firefox' @@ -38,16 +60,15 @@ export BACKLIGHT_DEVICE='acpi_video0' export GUILE_HISTORY="$XDG_STATE_HOME/guile-history" export GNUPGHOME="$XDG_CONFIG_HOME/gnupg" -export INPUTRC="$XDG_CONFIG_HOME/bash/inputrc" export RLWRAP_HOME="$XDG_CACHE_HOME/rlwrap" export LESSHISTFILE="$XDG_STATE_HOME/lesshst" export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch/default/config" -export PASSWORD_STORE_DIR="$SRC/others/password-store" +export PASSWORD_STORE_DIR="$SRC/private/password-store" export MAILCAPS="$XDG_CONFIG_HOME/mailcaps/config" export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc.py" export EXINIT=' " set number - set autoindent + " set autoindent set ruler set showmode set showmatch @@ -59,16 +80,20 @@ export BORG_REPO="suyin:borg/$HOSTNAME" export BORG_REMOTE_PATH='borg1' N_PROCS=$(($(nproc) * 2 + 1)) +GUILE_EFFECTIVE_VERSION="$(guile -c '(display (effective-version))')" export MAKEFLAGS="-j $N_PROCS" export GOPATH="$SRC/go" export CFLAGS='-std=c99 -Wall -Wextra -Wpedantic -g -flto -Werror' -export CC=tcc +export CC=gcc export AR=gcc-ar export LEX=flex export LDFLAGS='-flto' export LISP='sbcl --eval' +export N_PROCS GUILE_EFFECTIVE_VERSION add_prefix() { + export GUILE_LOAD_PATH="$1/share/guile/site/$GUILE_EFFECTIVE_VERSION${GUILE_LOAD_PATH:+:}${GUILE_LOAD_PATH:-:}" + export GUILE_LOAD_COMPILED_PATH="$1/lib/guile/$GUILE_EFFECTIVE_VERSION/site-ccache${GUILE_LOAD_COMPILED_PATH:+:}${GUILE_LOAD_COMPILED_PATH:-}" export C_INCLUDE_PATH="$1/include${C_INCLUDE_PATH:+:}${C_INCLUDE_PATH:-}" export LIBRARY_PATH="$1/lib${LIBRARY_PATH:+:}${LIBRARY_PATH:-}" export INFOPATH="$1/share/info${INFOPATH:+:}${INFOPATH:-}" @@ -77,11 +102,8 @@ add_prefix() { } export PREFIX="$XDG_PREFIX/var/mkg" add_prefix "$PREFIX" +add_prefix "$XDG_PREFIX" -export PATH="$XDG_PREFIX/bin:$PREFIX/bin:$HOME/dev/libre/website/bin:$PATH" - -# FIXME -export GUILE_LOAD_PATH="$HOME/dev/libre/servers/src/infrastructure/lib:$GUILE_LOAD_PATH" # @@ -100,13 +122,8 @@ alias mm='msmtp-queue -r' alias s='vcs_status' alias d='vcs_diff' alias ds='vcs_diff_staged' - -alias mk='make clean && make dev-check' -alias wmk='aux/with-container "make clean && make dev-check"' -alias tt='mk && wmk' -alias todos='make public && open public/TODOs.html' -alias valgrind='valgrind --show-error-list=yes --show-leak-kinds=all --leak-check=full --track-origins=yes --error-exitcode=1' -alias check='sh "$XDG_CONFIG_HOME"/bash/check.sh' +alias check='sh "$XDG_CONFIG_HOME"/sh/check.sh' +alias tpd='cd "$(mkdtemp)"' alias l='ls -lahF --color' alias grep='grep --color=auto' @@ -114,10 +131,11 @@ alias diff='diff --color=auto' alias watch='watch --color ' alias man='MANWIDTH=$((COLUMNS > 80 ? 80 : COLUMNS)) man' alias less='less -R' -alias tree='tree -C' +alias tree='tree -aC' alias make='make -e' alias mv='mv -i' alias rm='rm -i' +alias vi='echo "Use \"e\" instead."; false' alias sqlite='rlwrap sqlite3' alias sbcl='rlwrap sbcl' @@ -132,7 +150,7 @@ alias flush='sync && echo 3 | sudo tee /proc/sys/vm/drop_caches > /dev/null' # PS1 # -. "$XDG_CONFIG_HOME"/bash/vcs-ps1.sh +. "$XDG_CONFIG_HOME"/sh/vcs-ps1.sh @@ -154,9 +172,12 @@ g() { f="$(echo "$fn" | cut -d: -f1)" n="$(echo "$fn" | cut -d: -f2)" # shellcheck disable=2068 + # history -s g "$@" + # history -s vi "+$n" "$f" + # vi "+$n" "$f" history -s g "$@" - history -s vi "+$n" "$f" - vi "+$n" "$f" + history -s e "+$n" "$f" + e "+$n" "$f" fi } @@ -174,98 +195,22 @@ f() { fi } -v() { - V_FILES="$( - cat <<-EOF | sed "s|$HOME|~|" - ~/Documents/txt/TODOs.md - ~/Documents/txt/scratch.txt - $XDG_CONFIG_HOME/bash/rc - $XDG_CONFIG_HOME/guix/home.scm - $XDG_CONFIG_HOME/guix/system.scm - $(find ~/Documents/txt/*.md -not -name TODOs.md | - sed "s|^$HOME|~|" | - LANG=POSIX.UTF-8 sort) - ~/dev/libre/package-repository/dependencies.dot - ~/dev/others/dinheiros/dinheiros.ledger - ~/dev/libre/dotfiles/sh/fake-symlinks.sh - $XDG_CONFIG_HOME/guix/channels.scm - EOF - )" - f="$(echo "$V_FILES" | fzf --select-1 --exit-0 --query "$1")" - if [ -n "$f" ]; then - history -s v "$@" - history -s vi "$f" - sh -c "vi $f" - fi -} - -cn() { - CHOICE="$(git log --oneline | fzf)" - git log --oneline | grep -nF "$CHOICE" | cut -d: -f1 -} - -cm() { - n="$(cn)" - git rev-parse "HEAD~$((n - 1))" -} - - - -deps() { - cd ~/dev/libre/package-repository/ || return 1 - rm -f public/dependencies.svg - make public/dependencies.svg > /dev/null - if [ "${1:-}" != '-q' ]; then - open public/dependencies.svg - fi - cd - > /dev/null || return 1 -} -(deps -q &) 2>/dev/null - -rdeps() { - echo ~/dev/libre/package-repository/dependencies.dot | - entr -cs '. ~/.profile' -} - -re() { - if [ "$1" = -h ]; then - echo "Usage: re 's/foo/bar/g' [FILES]" - return - fi - SEPARATOR="$(echo "$1" | cut -c2)" - REGEX="$(echo "$1" | cut -d"$SEPARATOR" -f2)" - if [ -n "${2:-}" ]; then - git grep -l "$REGEX" | xargs -I% sh -c "sed '$1' % | sponge %" - else - sed "$1" "$2" | sponge "$2" - fi -} - -container_dump() { - TARGET_NAME="$(basename "$PWD")" - OUT="$(mktemp -d)" - cp "$(./aux/guix/with-container.sh -C)" "$OUT/docker.tar.gz" - cd "$OUT" || exit 1 - tar xvf docker.tar.gz - # FIXME: Remove doas - doas docker tag \ - "$(doas docker load < docker.tar.gz | grep latest | cut -d: -f2)" \ - "$TARGET_NAME" -} +cat <<-EOF | sed "s|$HOME|~|" > "$XDG_DATA_HOME"/euandreh/e.list.txt + ~/Documents/txt/TODOs.md + ~/Documents/txt/scratch.txt + $XDG_CONFIG_HOME/sh/rc + $XDG_CONFIG_HOME/guix/home.scm + $XDG_CONFIG_HOME/guix/system.scm + $(find ~/Documents/txt/*.md -not -name TODOs.md | + sed "s|^$HOME|~|" | + LANG=POSIX.UTF-8 sort) + ~/dev/libre/package-repository/dependencies.dot + ~/dev/others/dinheiros/dinheiros.ledger + ~/dev/libre/dotfiles/sh/fake-symlinks.sh + $XDG_CONFIG_HOME/guix/channels.scm +EOF -svg() { - guix graph "$1" | dot -Tsvg > "$1".svg - open "$1".svg -} -serve() { - open http://localhost:8000 - if [ -d public ]; then - python3 -m http.server -d public - else - python3 -m http.server - fi -} reload() { . ~/.profile @@ -273,40 +218,22 @@ reload() { rreload() { reload + echo 'pactl load-module module-echo-cancel' xset r rate 225 100 # FIXME: move xorg conf - scp \ - ~/dev/libre/package-repository/public/dependencies.svg \ - kuvira:/opt/www/euandreh.xyz/static/package-repository/ -} - -tpd() { - D="$(mkdtemp)" - cd "$D" || return 1 -} - -m() { - notmuch new - mbsync EuAndreh & - mbsync EuAndrehXYZ & - mbsync Nubank & - wait - notmuch new } _edit_without_executing() { - F="$(mkstemp)" - printf '%s\n' "$READLINE_LINE" > "$F" - "${VISUAL:-${EDITOR:-vi}}" "$F" - READLINE_LINE="$(cat "$F")" - READLINE_POINT="${#READLINE_LINE}" - rm -f "$F" + F="$(mkstemp)" + printf '%s\n' "$READLINE_LINE" > "$F" + e "$F" + READLINE_LINE="$(cat "$F")" + READLINE_POINT="${#READLINE_LINE}" + rm -f "$F" } - if set -o | grep 'on' | grep -Eq '^(vi|emacs)'; then bind -x '"\C-x\C-e":_edit_without_executing' fi -eval "$(direnv hook bash)" @@ -322,14 +249,41 @@ gpg --export-ssh-key eu@euandre.org > "$XDG_CONFIG_HOME"/ssh/id_rsa.pub chmod 600 "$XDG_CONFIG_HOME"/ssh/id_rsa.pub -stty -ixon # Disable C-s/C-q mode +PUB_GPG_FILES=" +$HOME/dev/libre/package-repository/EuAndreh.key +$HOME/dev/published/euandre.org/public.asc +" +for f in $PUB_GPG_FILES; do + gpg --armour --export eu@euandre.org > $f +done -if [ -e "$XDG_CONFIG_HOME"/bash/privrc.sh ]; then +stty -ixon # Disable C-s/C-q mode + +F="$XDG_CONFIG_HOME"/sh/privrc.sh +if [ -e "$F" ]; then # Extra rc code to be loaded, stored in private repository - . "$XDG_CONFIG_HOME"/bash/privrc.sh + . "$F" fi + + + +# +# From here on, bash-specific things. +# + +if [ -z "$BASH_VERSION" ]; then + return +fi + +ln -fs .profile ~/.bashrc + +export INPUTRC="$XDG_CONFIG_HOME/bash/inputrc" +export HISTCONTROL=ignorespace:ignoredups + +eval "$(direnv hook bash)" + case $- in *i*) for f in "$HOME_ENVIRONMENT"/profile/etc/bash_completion.d/*; do |