Some zsh updates
This commit is contained in:
parent
f8d182f61d
commit
4d30286eb6
3 changed files with 12 additions and 153 deletions
7
bin/generate_ssh_key
Executable file
7
bin/generate_ssh_key
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#! /usr/bin/env bash
|
||||||
|
|
||||||
|
function main {
|
||||||
|
ssh-keygen -m PEM -t rsa -b 4096 -C "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
153
bin/tmux-imgcat
153
bin/tmux-imgcat
|
@ -1,153 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# tmux requires unrecognized OSC sequences to be wrapped with DCS tmux;
|
|
||||||
# <sequence> ST, and for all ESCs in <sequence> to be replaced with ESC ESC. It
|
|
||||||
# only accepts ESC backslash for ST. We use TERM instead of TMUX because TERM
|
|
||||||
# gets passed through ssh.
|
|
||||||
function print_osc() {
|
|
||||||
if [[ $TERM == screen* ]] ; then
|
|
||||||
printf "\033Ptmux;\033\033]"
|
|
||||||
else
|
|
||||||
printf "\033]"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# More of the tmux workaround described above.
|
|
||||||
function print_st() {
|
|
||||||
if [[ $TERM == screen* ]] ; then
|
|
||||||
printf "\a\033\\"
|
|
||||||
else
|
|
||||||
printf "\a"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function load_version() {
|
|
||||||
if [ -z ${IMGCAT_BASE64_VERSION+x} ]; then
|
|
||||||
export IMGCAT_BASE64_VERSION=$(base64 --version 2>&1)
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function b64_encode() {
|
|
||||||
load_version
|
|
||||||
if [[ "$IMGCAT_BASE64_VERSION" =~ GNU ]]; then
|
|
||||||
# Disable line wrap
|
|
||||||
base64 -w0
|
|
||||||
else
|
|
||||||
base64
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function b64_decode() {
|
|
||||||
load_version
|
|
||||||
if [[ "$IMGCAT_BASE64_VERSION" =~ fourmilab ]]; then
|
|
||||||
BASE64ARG=-d
|
|
||||||
elif [[ "$IMGCAT_BASE64_VERSION" =~ GNU ]]; then
|
|
||||||
BASE64ARG=-di
|
|
||||||
else
|
|
||||||
BASE64ARG=-D
|
|
||||||
fi
|
|
||||||
base64 $BASE64ARG
|
|
||||||
}
|
|
||||||
|
|
||||||
# print_image filename inline base64contents print_filename
|
|
||||||
# filename: Filename to convey to client
|
|
||||||
# inline: 0 or 1
|
|
||||||
# base64contents: Base64-encoded contents
|
|
||||||
# print_filename: If non-empty, print the filename
|
|
||||||
# before outputting the image
|
|
||||||
function print_image() {
|
|
||||||
print_osc
|
|
||||||
printf '1337;File='
|
|
||||||
if [[ -n "$1" ]]; then
|
|
||||||
printf 'name='`printf "%s" "$1" | b64_encode`";"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printf "%s" "$3" | b64_decode | wc -c | awk '{printf "size=%d",$1}'
|
|
||||||
printf ";inline=$2"
|
|
||||||
printf ":"
|
|
||||||
printf "%s" "$3"
|
|
||||||
print_st
|
|
||||||
printf '\n'
|
|
||||||
if [[ -n "$4" ]]; then
|
|
||||||
echo $1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function error() {
|
|
||||||
echo "ERROR: $*" 1>&2
|
|
||||||
}
|
|
||||||
|
|
||||||
function show_help() {
|
|
||||||
echo "Usage: imgcat [-p] filename ..." 1>& 2
|
|
||||||
echo " or: cat filename | imgcat" 1>& 2
|
|
||||||
}
|
|
||||||
|
|
||||||
function check_dependency() {
|
|
||||||
if ! (builtin command -V "$1" > /dev/null 2>& 1); then
|
|
||||||
echo "imgcat: missing dependency: can't find $1" 1>& 2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
## Main
|
|
||||||
|
|
||||||
if [ -t 0 ]; then
|
|
||||||
has_stdin=f
|
|
||||||
else
|
|
||||||
has_stdin=t
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Show help if no arguments and no stdin.
|
|
||||||
if [ $has_stdin = f -a $# -eq 0 ]; then
|
|
||||||
show_help
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
check_dependency awk
|
|
||||||
check_dependency base64
|
|
||||||
check_dependency wc
|
|
||||||
|
|
||||||
# Look for command line flags.
|
|
||||||
while [ $# -gt 0 ]; do
|
|
||||||
case "$1" in
|
|
||||||
-h|--h|--help)
|
|
||||||
show_help
|
|
||||||
exit
|
|
||||||
;;
|
|
||||||
-p|--p|--print)
|
|
||||||
print_filename=1
|
|
||||||
;;
|
|
||||||
-u|--u|--url)
|
|
||||||
check_dependency curl
|
|
||||||
encoded_image=$(curl -s "$2" | b64_encode) || (error "No such file or url $2"; exit 2)
|
|
||||||
has_stdin=f
|
|
||||||
print_image "$2" 1 "$encoded_image" "$print_filename"
|
|
||||||
set -- ${@:1:1} "-u" ${@:3}
|
|
||||||
if [ "$#" -eq 2 ]; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
-*)
|
|
||||||
error "Unknown option flag: $1"
|
|
||||||
show_help
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
if [ -r "$1" ] ; then
|
|
||||||
has_stdin=f
|
|
||||||
print_image "$1" 1 "$(b64_encode < "$1")" "$print_filename"
|
|
||||||
else
|
|
||||||
error "imgcat: $1: No such file or directory"
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
shift
|
|
||||||
done
|
|
||||||
|
|
||||||
# Read and print stdin
|
|
||||||
if [ $has_stdin = t ]; then
|
|
||||||
print_image "" 1 "$(cat | b64_encode)" ""
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
|
@ -194,4 +194,9 @@ function select_session {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [ -z "$TMUX" ]
|
||||||
|
then
|
||||||
|
neofetch
|
||||||
|
fi
|
||||||
|
|
||||||
select_session
|
select_session
|
||||||
|
|
Loading…
Add table
Reference in a new issue