|
|
- #!/usr/bin/zsh
-
- count() {
- echo -n $1 | wc -c
- }
-
- dec() {
- echo "obase=10; ibase=16; $(echo "$1" | tr a-z A-Z)" | bc
- }
-
- hex() {
- echo "obase=16; ibase=10; $1" | bc
- }
-
- colors() {
- color=1;
- count=0;
- space=" ";
- while [ $color -lt 256 ]; do
- if [[ $color == 10 ]]
- then
- space=" "
- fi
- if [[ $color == 100 ]]
- then
- space=" "
- fi
- echo -en "$color:$space\\033[38;5;${color}myeet\\033[48;5;${color}mworld\\033[0m"
- echo -n " "
- if [[ $count == 7 ]]
- then
- echo -en "\n";
- count=-1
- fi
- ((color++));
- ((count++))
- done
- echo ""
- }
-
-
- # TMATE Functions
-
- TMATE_PAIR_NAME="$(whoami)-pair"
- TMATE_SOCKET_LOCATION="$XDG_RUNTIME_DIR/tmate-pair.sock"
- TMATE_TMUX_SESSION="$XDG_RUNTIME_DIR/tmate-tmux-session"
-
- # Get current tmate connection url
- tmate-url() {
- url="$(tmate -S $TMATE_SOCKET_LOCATION display -p '#{tmate_ssh}')"
- echo "$url" | tr -d '\n' | xclip -selection clipboard
- echo "Copied tmate url for $TMATE_PAIR_NAME:"
- echo "$url"
- }
-
- # Get current tmate connection url
- tmate-url-ro() {
- url="$(tmate -S $TMATE_SOCKET_LOCATION display -p '#{tmate_ssh_ro}')"
- echo "$url" | tr -d '\n' | xclip -selection clipboard
- echo "Copied tmate url for $TMATE_PAIR_NAME:"
- echo "$url"
- }
-
-
- # Start a new tmate pair session if one doesn't already exist
- # If creating a new session, the first argument can be an existing TMUX session to connect to automatically
-
- tmate-attach() {
- if [ -n "$1" ]; then
- tmux has-session -t $1 2>/dev/null
-
- if [ $? != 0 ]; then
- echo "Tmux session not found... Creating"
- tmux new-session -d -s $1
- sleep 1
- fi
-
- echo "Attaching tmate to tmux session $1";
- echo $1 > $TMATE_TMUX_SESSION
- tmate -S "$TMATE_SOCKET_LOCATION" send -t "$TMATE_PAIR_NAME" "TMUX='' tmux attach-session -t $1; tmate-unpair" ENTER
- fi
- }
-
-
- tmate-pair() {
- if [ -z "$(pass show "AppPass/tmate.com/api-key")" ]; then
- echo "You need an api key."
- return
- fi
-
- if [ ! -e "$TMATE_SOCKET_LOCATION" ]; then
- tmate -k $(pass show "AppPass/tmate.com/api-key") -r "sharedProgramming" -S "$TMATE_SOCKET_LOCATION" -f "$HOME/.tmate.conf" new-session -d -s "$TMATE_PAIR_NAME"
- tmate -S $TMATE_SOCKET_LOCATION display -p '#{tmate_ssh_ro}'
-
- while [ -z "$url" ]; do
- url="$(tmate -S $TMATE_SOCKET_LOCATION display -p '#{tmate_ssh_ro}')"
- done
- echo "$url" | tr -d '\n' | xclip -selection clipboard
- echo "Copied tmate url for $TMATE_PAIR_NAME:"
- echo "$url"
- tmate -S "$TMATE_SOCKET_LOCATION" send -t "$TMATE_PAIR_NAME" "q" ENTER
- sleep 1
- tmate-attach $1
- sleep 2
- fi
- tmate -S "$TMATE_SOCKET_LOCATION" attach-session -t "$TMATE_PAIR_NAME"
- }
-
- # Colored man
- man() {
- LESS_TERMCAP_md=$'\e[01;31m' \
- LESS_TERMCAP_me=$'\e[0m' \
- LESS_TERMCAP_so=$'\e[01;44;33m' \
- LESS_TERMCAP_se=$'\e[0m' \
- LESS_TERMCAP_us=$'\e[01;32m' \
- LESS_TERMCAP_ue=$'\e[0m' \
- command man "$@"
- }
-
-
- genccls() {
- cat > .ccls << EOF
- -I
- ../include
- -I
- ../vendor/include
- -std=c++14
- -stdlib=libc++
- -fPIC
- EOF
- }
-
- # Close the pair because security
- tmate-unpair() {
- if [ -e "$TMATE_SOCKET_LOCATION" ]; then
- if [ -e "$TMATE_SOCKET_LOCATION" ]; then
- tmux detach -s $(cat $TMATE_TMUX_SESSION)
- rm -f $TMATE_TMUX_SESSION
- fi
-
- tmate -S "$TMATE_SOCKET_LOCATION" kill-session -t "$TMATE_PAIR_NAME"
- echo "Killed session $TMATE_PAIR_NAME"
- else
- echo "Session already killed"
- fi
- }
-
- transfer() {
- curl --upload-file "$1" "https://transfer.sh/$1"
- }
-
-
- rawurlencode() {
- local string="${1}:$(cat -)"
- local strlen=${#string}
- local encoded=""
- local pos c o
-
- for (( pos=0 ; pos<strlen ; pos++ )); do
- c=${string:$pos:1}
- case "$c" in
- [-_.~a-zA-Z0-9] ) o="${c}" ;;
- * ) printf -v o '%%%02x' "'$c"
- esac
- encoded+="${o}"
- done
- echo "${encoded}" # You can either set a return variable (FASTER)
- REPLY="${encoded}" #+or echo the result (EASIER)... or both... :p
- }
-
- rawurldecode() {
- printf -v REPLY '%b' "${1//%/\\x}" # You can either set a return variable (FASTER)
-
- echo "${REPLY}" #+or echo the result (EASIER)... or both... :p
- }
-
- pdfcomp(){
- gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile="${2}" "${1}"
- }
|