Artifact d7b1800aa314bf18a2bb976435f540ce7239828e9ac34573fb23e5e9d98b9421:
- File
zshrc
— part of check-in
[6276aeb66b]
at
2024-03-11 21:53:00
on branch trunk
— zshrc: Add back sprunge
It seems to be back *and* support https now. (user: js size: 14498)
export XDG_CONFIG_HOME="$HOME/.config" export XDG_CACHE_HOME="$HOME/.cache" export XDG_DATA_HOME="$HOME/.local/share" export EDITOR="vim" export VIMINIT="source $XDG_CONFIG_HOME/vim/vimrc" export PAGER="less" export LS_COLORS='di=34:ow=44;37:tw=44;37:st=44;37:ex=31:su=7;31:sg=7;31:ln=33:or=7;33:pi=32:do=32:bd=35:cd=35:so=32:*.bz2=36:*.dmg=36:*.gz=36:*.gpg=36:*.rar=36:*.tar=36:*.tbz2=36:*.tgz=36:*.xz=36:*.zip=36:*.orig=90:*~=90' export SUDO_PROMPT="$(printf "\033[0;31m[\033[1;31msudo -> %%U\033[0;31m]\033[0m Password for \033[1m%%p@%%H\033[0m: ")" export GNUPGHOME="$XDG_DATA_HOME/gnupg" export CVS_RSH="ssh" LISTMAX=32768 WORDCHARS="*?[];!#~" local grep="" local grep_color="auto" local ls="" local ls_color="auto" local ls_on_cd="yes" local ls_on_init="no" local normal_user="js" autoload -U is-at-least if is-at-least 5.0.0 && [ "$COLORTERM" = "24bit" -o "$COLORTERM" = "truecolor" \ -o "$terminfo[colors]" = 16777216 ]; then local color_cwd="#209060" local color_host="#176945" local color_suffix="#29bc7d" local color_vcs="#43d696" local color_vcs_braces="#29bc7d" local color_jobs="yellow" local color_status="red" elif is-at-least 5.0.0 && [ "$terminfo[colors]" = 256 ]; then local color_cwd="29" local color_host="23" local color_suffix="36" local color_vcs="78" local color_vcs_braces="36" local color_jobs="yellow" local color_status="red" else local color_cwd=2 local color_host=6 local color_suffix=2 local color_vcs=2 local color_vcs_braces=2 local color_jobs=3 local color_status=1 fi bindkey -v # history-incremental-search-backward is much more useful than # _history-complete-* bindkey "^R" history-incremental-search-backward # Add a few other emacs bindings for convenience, as it's sometimes quicker to # use those than to switch between modes. bindkey "^A" beginning-of-line bindkey "^E" end-of-line bindkey "^D" delete-char-or-list # backward-kill-word behaves more like vim, whereas vi-backward-kill-word is # the vi behaviour. bindkey "^W" backward-kill-word # Otherwise not available at all in vi mode. bindkey "^P" insert-last-word setopt no_bg_nice setopt no_nomatch setopt no_bang_hist setopt extended_glob setopt autocd setopt auto_pushd autoload -U compinit compinit -C # Ignore case on completion zstyle ':completion:*' matcher-list 'm:{A-Z}={a-z} m:{a-z}={A-Z}' __has_command() { local i for i in $@; do which $i &>/dev/null && return 0 done return 1 } __find_command() { for i in $@; do if __has_command $i; then echo $i return 0 fi done return 1 } if [ -n "$grep" -o -n "$grep_color" ]; then : ${grep:=$(__find_command ggrep grep)} [ -n "$grep_color" -a "$grep_color[1]" != - ] && grep_color="--color=$grep_color" if echo x | $grep $grep_color x &>/dev/null; then alias grep="$grep $grep_color" fi fi alias fgrep="grep -F" if [ -n "$ls" -o -n "$ls_color" ]; then : ${ls:=$(__find_command gls ls)} [ -n "$ls_color" -a "$ls_color[1]" != - ] && ls_color="--color=$ls_color" if $ls $ls_color &>/dev/null; then alias ls="$ls $ls_color" fi fi [ "$ls_on_cd" = yes ] && chpwd() { ls } [ "$ls_on_init" = yes ] && ls case $TERM_PROGRAM in Apple_Terminal) __update_terminal_cwd() { printf '\e]7;%s\a' "file://$HOSTNAME${PWD// /%20}" } ;; *) __update_terminal_cwd() {} ;; esac set_prompt() { if is-at-least 5.0.0; then color() { printf "%%F{$1}" } nocolor() { printf "%%f" } else color() { printf "%%{\033[3${1}m%%}" } nocolor() { printf "%%{\033[0m%%}" } fi if [ -n "$1" ]; then local branch="$(color $color_vcs_braces)($(color $color_vcs)$1" branch+="$(color $color_vcs_braces))" fi if [ "$(whoami)" != "$normal_user" ]; then local user="%n@" fi PS1="$(color $color_host)$user%m $(color $color_cwd)%c$branch" PS1+="$(color $color_suffix)%(!.#.>)$(nocolor) " PS2="%B>%b " RPS1="%(1j.$(color $color_jobs)%B%j%b$(nocolor).)%(?..%(1j. .)" RPS1+="$(color $color_status)%B%?%b$(nocolor))" RPS2="%(1_.$(color black)%B(%_%)%b$(nocolor).)" unfunction color nocolor } set_prompt __precmd() { __update_terminal_cwd local branch=$(fossil branch current 2>/dev/null) if [ -z "$branch" ]; then branch=$(git symbolic-ref HEAD 2>/dev/null) branch=${branch##refs/heads/} fi set_prompt $branch } case $TERM in aterm|Eterm|rxvt*|uxterm*|xterm*) # Use set_title if you want to change the term title set_title() { # Without this, precmd would override it precmd() { __precmd } print -Pn "\e]0;$@\a" } unset_title() { precmd() { print -Pn "\e]0;%m:%c\a" __precmd } } unset_title ;; *) precmd() { __precmd } ;; esac extr() { for i in $@; do case $i in *.7z) 7za x $i ;; *.lha) ofarc -x $i ;; *.tar) ofarc -x $i ;; *.tbz | *.tbz2 | *.tar.bz2) bzcat $i | ofarc -ttar -x - ;; *.tgz | *.tar.gz) ofarc -x $i ;; *.txz | *.tar.xz) xzcat $i | ofarc -ttar -x - ;; *.rar) unrar x $i ;; *.zip) ofarc -x $i ;; # These have to be the last for obvious reasons *.bz2) bunzip2 $i ;; *.gz) ofarc -x $i ;; *.xz) unxz $i ;; *) echo "$i: Unknown file type" false ;; esac done } for ext in 7z lha tar tbz tbz2 tar.bz2 tgz tar.gz txz tar.xz rar zip bz2 gz xz do alias -s "$ext=extr" done __has_command vim && alias vi=vim __has_command gpg2 && alias gpg=gpg2 if [ "$(uname -s)" = "Darwin" ]; then local thread_count="$(sysctl -n machdep.cpu.thread_count 2>/dev/null)" test -z "$thread_count" && thread_count=1 export MAKEFLAGS="-j$((thread_count * 2))" elif [ "$(uname -s)" = "NetBSD" ]; then export MAKEFLAGS="-j$(($(/sbin/sysctl -n hw.ncpu) * 2))" elif __has_command nproc; then export MAKEFLAGS="-j$(($(nproc) * 2))" fi make() { case "$PWD" in # pkgsrc needs bmake and does not like MAKEFLAGS including -j. */pkgsrc*) MAKEFLAGS= =$(__find_command bmake make) $@ ;; *) =make $@ ;; esac } __has_command tmux && alias tmux="tmux -f $XDG_CONFIG_HOME/tmux/tmux.conf" if ! __has_command colordiff; then colordiff() { local red=$(printf "\033[31m") local green=$(printf "\033[32m") local reset=$(printf "\033[0m") sed -e "s/^+.*$/$green&$reset/" -e "s/^-.*$/$red&$reset/" } fi if __has_command fossil; then alias fl="fossil" alias flc="fossil changes --differ" fld() { fossil diff -N "$@" | colordiff | less -FRX } flpu() { fossil pull && fossil update "$@" } flgrep() { local ret=1 fossil changes --all . | awk '{print $2}' | while read file; do grep -H "$@" "$file" && ret=0 [ $? -gt 1 ] && return $? done return $ret } flveri() { rev="${1-current}" echo -e "\033[1m$rev\033[0m" fossil artifact "$rev" | gpg --verify } flunci() { fossil up previous && \ fossil diff -N --checkin tip | patch -p0 && \ fossil purge checkins tip } git2fl() { local gitdir=$(git rev-parse --show-toplevel)/.git local repo=$(fossil info | awk '/^repository:/ { print $2 }') [ -z "$repo" ] && repo="$1" [ -n "$repo" -a -f "$repo" ] && local incremental="--incremental" [ -f "$gitdir/git.marks" ] && local importmarks_git="--import-marks=$gitdir/git.marks" if [ -f "$gitdir/fossil.marks" ]; then local importmarks_fossil importmarks_fossil="--import-marks $gitdir/fossil.marks" fi LC_ALL=C git fast-export \ --signed-tags=warn-strip \ --export-marks=$gitdir/git.marks \ $=importmarks_git \ --all | LC_ALL=C fossil import \ --git \ $=incremental \ --rename-master trunk \ --export-marks $gitdir/fossil.marks \ $=importmarks_fossil \ $repo } fl2git() { if [ -n "$1" ]; then local gitdir="$1/.git" else local gitdir=$(git rev-parse --show-toplevel)/.git fi [ -f "$gitdir/git.marks" ] && local importmarks_git="--import-marks=$gitdir/git.marks" if [ -f "$gitdir/fossil.marks" ]; then local incremental="--incremental" local importmarks_fossil importmarks_fossil="--import-marks $gitdir/fossil.marks" fi LC_ALL=C fossil export \ --git \ $=incremental \ --rename-trunk master \ --export-marks $gitdir/fossil.marks \ $=importmarks_fossil | LC_ALL=C git fast-import \ --export-marks=$gitdir/git.marks \ $=importmarks_git } fi if __has_command cvs; then cvsd() { cvs diff -uN "$@" | colordiff | less -FRX } fi if __has_command screen; then case "$(uname -s)" in Linux) uart() { screen /dev/ttyUSB${2:=0} ${1:=115200} } ;; esac fi # pkgsrc does not like MAKEFLAGS including -j __has_command pkg_chk && alias pkg_chk="MAKEFLAGS= pkg_chk" __has_command pkg_rolling-replace && alias pkg_rolling-replace="MAKEFLAGS= pkg_rolling-replace" __has_command url2pkg && alias url2pkg="MAKEFLAGS= url2pkg" # mpv does not like locales that use , as decimal point. __has_command mpv && alias mpv="LC_ALL=C mpv" if __has_command gpg gpg2; then alias gssh='SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) ssh -o IdentitiesOnly=no' alias gssh-add='SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) ssh-add' alias gsftp='SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) sftp -o IdentitiesOnly=no' if __has_command sshfs; then alias gsshfs='SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) sshfs -o IdentitiesOnly=no' fi fi if __has_command cryptopassphrase; then pwnk() { local clipboard if __has_command wl-copy; then clipboard=wl-copy elif __has_command pbcopy; then clipboard=pbcopy elif __has_command xclip; then clipboard=xclip else echo "No clipboard handler found!" return 1 fi cryptopassphrase $@ | tr -d '\n' | $clipboard } alias pw="pwnk -k ~/.cryptopassphrase.key" alias pws="pwnk -k ~/.cryptopassphrase-server.key" fi sprunge() { curl -F'sprunge=<-' https://sprunge.us } 0x0st() { curl -F'file=@-' https://0x0.st } if [ -f /sys/class/power_supply/BAT0/power_now ]; then power_now() { awk '{ print $1*10^-6 " W" }' \ /sys/class/power_supply/BAT0/power_now } fi cross() { if [ $# = 0 ]; then echo 'Usage: cross platform [architecture1] [architecture2]' \ 1>&2 return 1 fi case "$1" in 3ds | nds) if [ -z "$DEVKITPRO" ]; then echo "Please set DEVKITPRO!" 1>&2 return 1 fi if [ -z "$DEVKITARM" ]; then echo "Please set DEVKITARM!" 1>&2 return 1 fi export PATH="$DEVKITARM/bin:$PATH" export cross_host="arm-none-eabi" export objfw_configure_flags="--with-$1" ;; amiga) case "$2" in m68k) if [ -z "$amiga_gcc_path" ]; then echo "Please set amiga_gcc_path!" 1>&2 return 1 fi export PATH="$amiga_gcc_path/bin:$PATH" export cross_host="m68k-amigaos" ;; ppc) if [ -z "$adtools_path" ]; then echo "Please set adtools_path!" 1>&2 return 1 fi export PATH="$adtools_path/bin:$PATH" export cross_host="ppc-amigaos" ;; esac if [ $# != 2 -o -z "$cross_host" ]; then echo "Usage: cross amiga m68k|ppc" 1>&2 return 1 fi ;; djgpp) local pkg="cross-i586-pc-msdosdjgpp-gcc" local prefix="$(pkg_info -qp $pkg 2>/dev/null | awk '/^@cwd/ { print $2; exit }')" if [ -z "$prefix" ]; then echo "Please install $pkg from pkgsrc!" 1>&2 return 1 fi export PATH="$prefix/cross-djgpp/bin:$PATH" export cross_host="i586-pc-msdosdjgpp" local build="$(LC_ALL=C gcc -v 2>&1 | awk '/^Target:/ { print $2 }')" export objfw_configure_flags="--build=$build" ;; ios | iossim) if ! __has_command xcrun; then echo -n "Can only cross-compile for iOS " 1>&2 echo "on a Mac with Xcode!" 1>&2 return 1 fi case "$1" in ios) local sdk_type=iphoneos local default_archs="arm64" ;; iossim) local sdk_type=iphonesimulator local default_archs="x86_64" ;; esac local sdk="$(xcrun --show-sdk-path --sdk $sdk_type)" local archs="${@:2}" if [ ${(w)#archs} = 0 ]; then archs="$default_archs" fi export CC="clang -isysroot $sdk" export CPP="clang -E -isysroot $sdk" export CXX="clang++ -isysroot $sdk" export CXXPP="clang++ -E -isysroot $sdk" for arch in $=archs; do export CC="$CC -arch $arch" export CXX="$CXX -arch $arch" done export CPP="$CPP -arch $archs[(w)1]" export CXXPP="$CXXPP -arch $archs[(w)1]" export OBJC="$CC" export OBJCPP="$CPP" export OBJCXX="$CXX" export OBJCPPXX="$CXXPP" export IPHONEOS_DEPLOYMENT_TARGET="10.0" export cross_host="$archs[(w)1]-apple-darwin" ;; macos) if [ -z "$retro68_path" ]; then echo "Please set retro68_path!" 1>&2 return 1 fi export PATH="$retro68_path/bin:$PATH" case "$2" in m68k) export cross_host="m68k-apple-macos" ;; ppc) export cross_host="powerpc-apple-macos" ;; esac if [ $# != 2 -o -z "$cross_host" ]; then echo "Usage: cross macos m68k|ppc" 1>&2 return 1 fi ;; mingw) case "$2" in i686 | x86_64) local pkg="mingw-w64-$2-gcc" export cross_host="$2-w64-mingw32" ;; esac if [ $# != 2 -o -z "$cross_host" ]; then echo "Usage: cross mingw i686|x86_64" 1>&2 return 1 fi local prefix="$(pkg_info -qp $pkg 2>/dev/null | awk '/^@cwd/ { print $2; exit }')" if [ -z "$prefix" ]; then echo "Please install $pkg from pkgsrc!" 1>&2 return 1 fi export PATH="$prefix/cross/$cross_host/bin:$PATH" ;; morphos) local pkg="ppc-morphos-gcc-11" local prefix="$(pkg_info -qp $pkg 2>/dev/null | awk '/^@cwd/ { print $2; exit }')" if [ -z "$prefix" ]; then echo "Please install $pkg from pkgsrc!" 1>&2 return 1 fi export PATH="$prefix/gg/bin:$PATH" export CC="ppc-morphos-gcc-11" export CXX="ppc-morphos-g++-11" export OBJC="$CC" export OBJCXX="$CXX" export cross_host="ppc-morphos" ;; switch) if [ -z "$DEVKITPRO" ]; then echo "Please set DEVKITPRO!" return 1 fi if [ -z "$DEVKITA64" ]; then echo "Please set DEVKITA64!" return 1 fi export PATH="$DEVKITA64/bin:$DEVKITPRO/tools/bin:$PATH" export cross_host="aarch64-none-elf" export objfw_configure_flags="--with-nintendo-switch" ;; wii | wii-u) if [ -z "$DEVKITPRO" ]; then echo "Please set DEVKITPRO!" return 1 fi if [ -z "$DEVKITPPC" ]; then echo "Please set DEVKITPPC!" return 1 fi export PATH="$DEVKITPPC/bin:$DEVKITPRO/tools/bin:$PATH" export cross_host="powerpc-eabi" export objfw_configure_flags="--with-$1" ;; *) echo "Unknown target: $1" 1>&2 return 1 ;; esac export objfw_configure_flags=( --host=$cross_host $=objfw_configure_flags ) } unset fgrep grep grep_color ls ls_color ls_on_cd ls_on_init unset HISTFILE