#!/bin/bash ## >>> general export PS1='\[\033[1;36m\][\[\033[1;34m\]\u\[\033[1;33m\]@\[\033[1;32m\]\h:\[\033[1;35m\]\w\[\033[1;36m\]]\[\033[1;31m\]\\$\[\033[0m\] ' export PATH=~/.tfenv/bin:$PATH #export PATH=~/.local/bin:$PATH export EDITOR=vim export HISTCONTROL=ignoreboth:erasedups #export PATH=/mnt/c/Users/jan.diller/AppData/Local/Programs/Rancher\ Desktop/resources/resources/linux/bin:$PATH # --------------------------------------------------------------------------------------------------- alias jb='cd "${CC_PATH}"' alias l1='ls -1a' alias qm="xargs -rI{} mv '{}'" alias rr='rm -Rf' alias xi='xsel -bi' alias xo='xsel -bo' alias cls='clear' alias fdg='find . -type d | grep' alias ffg='find . -type f | grep' alias lsd="find . -maxdepth 1 -type d -not -path '*/.terraform*' -not -path '*/.git*'" alias oany='code "$(find -maxdepth 1 -type f | head -n 1)"' alias tickets="xsel -bo | grep -E '^(A|D|M)\s' | rev | cut -d '/' -f 2-99 | rev | cut -d$'\t' -f 2-99 | sort -u" alias globTrim="find . -type f -not -path '*/.terraform*' -not -path '*/.git*' | xargs -rI{} sed -i '{}' -e 's|[ ]*$||g'" function cc(){ local cc_path="$(find . -type d -maxdepth 3 -not -path '*/.terraform*' -not -path '*/.git*' 2>/dev/null | xargs -rI{} bash -c 'echo -e "0\t../../..\n$(echo "{}" | tr -cd '/' | wc -c)\t{}"' | sort -u | cut -d$'\t' -f 2 | grep -Ei "$(echo "$@" | tr -s ' ' | sed -E 's| |\.*|g')" | nl -i1 -n'rz' -v0 -w3 | fzf | cut -d$'\t' -f 2)" cc_path="${PWD}/${cc_path}" export CC_PATH="${cc_path}" cd "${CC_PATH}"; } function cf(){ local cc_path="$(find . -type f -maxdepth 4 -not -path '*/.terraform*' -not -path '*/.git*' 2>/dev/null | xargs -rI{} bash -c 'echo -e "0\t../../..\n$(echo "{}" | tr -cd '/' | wc -c)\t{}"' | sort -u | cut -d$'\t' -f 2 | grep -Ei "$(echo "$@" | tr -s ' ' | sed -E 's| |\.*|g')" | nl -i1 -n'rz' -v0 -w3 | fzf | cut -d$'\t' -f 2)" cc_path=$(printf "${cc_path}" | rev | cut -d '/' -f 2-99 | rev) cc_path="${PWD}/${cc_path}" export CC_PATH="${cc_path}" cd "${CC_PATH}"; } function ccb(){ local cc_file="$(find . -type f -not -path '*/.terraform*' -not -path '*/.git*' 2>/dev/null | xargs -rI{} bash -c 'echo -e "0\t../../..\n$(echo "{}" | tr -cd '/' | wc -c)\t{}"' | sort -u | cut -d$'\t' -f 2 | grep -Ei "$(echo "$@" | tr -s ' ' | sed -E 's| |\.*|g')" | nl -i1 -n'rz' -v0 -w3 | fzf | cut -d$'\t' -f 2)" cc_file="${PWD}/${cc_file}" printf "'%s'" "${cc_file}" | xsel -bi } function diffho { while IFS= read res; do local head="${res}" local origin=$(echo "${res}" | sed 's|head|origin|g') diff -x '.git' -ruN "${origin}" "${head}" done < <(eval 'ls -1 | grep -E head$ | xargs -rI{} find '{}' -type f -not -path '*/.terraform*' -not -path '*/.git*' | sort -u | '"${1}"'') } function logall() { local all="$1" local err="$2" shift 2 "$@" > >(tee "$all") 2> >(tee "$err" | tee -a "$all" >&2) } function mh(){ local opts=$(cat << EOF dck :: . ______________ dckab :q: docker run -u "$(id -u):$(id -g)" -it --rm -v "\${PWD}":/documents acdc /bin/bash dckar :: docker build -t acdc ~/dev/docker-doc/head dckar :q: docker run --rm -u $(id -u):$(id -g) -v $(pwd):/documents/ asciidoctor/docker-asciidoctor asciidoctor-pdf '${1}' dckst :q: sudo /usr/sbin/service docker start ecf :: . ______________ ecf :: code ~/.aws/config ~/.aws/credentials ecf :: code ~/.local/bin/bashrc_extension.sh ecf :: code ~/.local/bin/envaws ecf :: code ~/.local/bin/git ecf :: code ~/.local/bin/terraform fnd :: . ______________ fnd :: find -L . -type f -not -path '*/.terraform*' -not -path '*/.git*' | xargs -rI{} file "{}" | grep ASCII | cut -d ":" -f 1 | xargs -rI{} grep -EH '^' '{}' fnd :: find . -type f | grep -E '#Untitled.*|\.marks$' | xargs -rI{} rm -v '{}' fndac :: find -L . -type f -not -path '*/.terraform*' -not -path '*/.git*' | xargs -rI{} file "{}" | grep ASCII | cut -d ":" -f 1 | sort -u --version-sort | xargs -rI{} grep -EH '^' '{}' >../$(pwd | sed -E 's|.*/(.*)|\1_allCnt\.txt|g') nxtcld :: . ______________ nxtcld :q: nextcloud >/dev/null 2>&1 & oth :: . ______________ oth :: . ~/.bashrc oth :: find -type f | grep -E '\.jr$|plan\.txt|state\.yaml' | xargs rm -f oth :q: while IFS= read res; do code "\${res}"; done < <(find | grep -F '_overview.adoc' | xargs -rI{} grep -EH '=== done' '{}' | grep '\-\-\-' | cut -d ':' -f 1) oth :: sed -i -r 's/\x1B\[([0-9]{1,3}(;[0-9]{1,2};?)?)?[mGK]//g' "${1}" oth :: vi ~/.local/bin/bashrc_extension.sh oth :q: cp \$(winpath '${1}') . penv :: . ______________ penv :: cat ~/.local/env.txt rdc :: . ______________ rdc :: sudo /etc/init.d/xrdp start EOF ) local selOpt=$(echo "${opts}" | grep -vE '^##' | nl -i1 -n'rz' -v0 -w3 | sort -ru | fzf) if [ "${selOpt}" == "" ]; then echo ">>>>>>> nothing selected, cancel ..." return fi mode=$( echo "${selOpt}" | sed -E 's/(^.*)([ ]*)(:[a-z]?:)([ ]*)(.*$)/\3/g' ) selOpt=$( echo "${selOpt}" | sed -E 's/(^.*)([ ]*)(:[a-z]?:)([ ]*)(.*$)/\5/g' ) case $mode in ":q:") echo ">>>>>>> ${selOpt}" history -s "${selOpt}" eval "${selOpt}" ;; *) echo ">>>>>>> ${selOpt} '$@'" history -s "${selOpt} '$@'" history -s "mh '$@'" eval "${selOpt} '$@'" ;; esac } function ord() { printf "&#%d;" "\"$1"; } function ppp(){ local opts=$(cat << EOF dcycpbd :q: xsel -bo | gpg --decrypt | xsel -bi dcyfle :q: $(printf "gpg --decrypt '%s'" "${1}" ) dcyfle :q: $(printf "gpg --output '%s' --decrypt '%s'" $(echo "${1}" | rev | cut -d '.' -f 2-99 | rev) "${1}" ) enccpbd :q: xsel -bo | gpg --encrypt --armor --recipient '%s' | xsel -bi enccpbdsgn :q: xsel -bo | gpg --encrypt --armor --sign --recipient '%s' | xsel -bi encfle :q: $(printf "gpg --encrypt --armor --recipient '%%s' '%s'" "${1}") encflesgn :q: $(printf "gpg --encrypt --armor --sign --recipient '%%s' '%s'" "${1}") exppbl :q: $(printf 'gpg --armor --export %%s >%s.pbl.asc' "${1}" ) expprv :q: $(printf 'gpg --armor --export-secret-keys %%s >%s.prv.asc' "${1}" ) keycrt :q: gpg --full-generate-key keyimp :q: $(printf 'gpg --import %s' "${1}" ) keylst :q: gpg --list-keys keysgn :q: gpg --sign-key '%s' EOF ) ## ## Import des eignen privaten Schlüssels ## Gib gpg --edit-key DEINE_EMAIL ein. ## * Tippe den Befehl trust. ## * Wähle die Stufe 5 (5 = I trust ultimately / Ich vertraue ultimativ). ## * Bestätige mit y (Ja) und beende mit save oder quit. local selOpt=$(echo "${opts}" | grep -vE '^##' | nl -i1 -n'rz' -v0 -w3 | sort -ru | fzf) if [ "${selOpt}" == "" ]; then echo ">>>>>>> nothing selected, cancel ..." return fi selOpt=$(echo "${selOpt}" | tr '\t' ' ' | tr -s ' ') prfx=$( echo "${selOpt}" | cut -d ' ' -f 2 ) mode=$( echo "${selOpt}" | cut -d ' ' -f 3 ) selOpt=$( echo "${selOpt}" | cut -d ' ' -f 4-999 ) swt=$( echo "${prfx:0:3}" ) usr='' case "${prfx}" in expprv|exppbl|encfle|encflesgn) if [[ -z "$1" ]]; then echo "Fehler: Parameter 1 fehlt" >&2; return 1; fi; usr=$(echo "$(gpg --list-keys | grep uid | xargs -rI{} echo '{}' | tr -s ' ' | cut -d '<' -f 2 | sed 's/.$//')" | fzf) selOpt=$(printf "${selOpt}" "${usr}") ;; keyimp) if [[ -z "$1" ]]; then echo "Fehler: Parameter 1 fehlt" >&2; return 1; fi; ;; enccpbd|enccpbdsgn|keysgn) usr=$(echo "$(gpg --list-keys | grep uid | xargs -rI{} echo '{}' | tr -s ' ' | cut -d '<' -f 2 | sed 's/.$//')" | fzf) selOpt=$(printf "${selOpt}" "${usr}") ;; *) ;; esac echo "${usr}" echo ">>>>>>> ${selOpt}" eval "${selOpt}" } function qcat { local file=$(find . -type f -not -path '*/.terraform*' -not -path '*/.git*' | grep -iE "${1}" | fzf) cmd=$(printf "cat '%s'" "${file}") eval "${cmd}" } function qrun { eval $(cat "${1}" | grep -vE '^#' | sort -u | nl -w 3 -n 'rz' | sort -r | fzf | sed -E 's|^[0-9\t]+||g') } alias qvi='vi "$(find . -type f | fzf)"' function qcode (){ local selOpt=$(eval $(printf "find . -type f -not -path '*/.terraform*' -not -path '*/.git*' | grep -Ev '\.(pem|pub)$' | grep -E '%s' | fzf" "${1:-.*}")) if [ "${selOpt}" == "" ]; then echo ">>>>>>> nothing selected, cancel ..." return fi echo ">>>>>>> code ${selOpt}" history -s "code ${selOpt}" eval "code ${selOpt}" } function stack() { local depot="${HOME}/depot" if [[ $# -ne 1 ]]; then echo "Usage: stack {pull|push|purge}" return 1 fi case "$1" in push) echo "Stack: push" src=$(ls -1 | fzf) prfx=$(date +"%Y%m%d%H%M%S") echo ">>> ${prfx}" echo ">>> ${src}" if [[ -n "$src" ]]; then tar -czvf "${depot}/${prfx}_${src}.tgz" "${src}"; fi ;; pull) echo "Stack: pull" src=$(ls -1 "${depot}" | fzf) echo ">>> ${src}" trg=$(echo "${src}" | cut -d '_' -f 2 | rev | cut -d '.' -f 2 | rev) echo ">>> ${trg}" if [[ -n "$src" ]]; then tar -xzvf "${depot}/${src}" --strip-components=1; fi ;; purge) echo "Stack: purge" src=$(ls -1 "${depot}" | fzf) echo ">>> ${src}" if [[ -n "$src" ]]; then rm -Rfv "${depot}/${src}"; fi ;; *) echo "Ungültiger Parameter: $1" return 1 ;; esac } function goto(){ local opts=$(cat << EOF aws :: cd ~/.aws bin :: cd ~/.local/bin code :: cd ~/dev/condor/bitbucket/AWS lcmdl :: cd ~/lcmodules_local/head mount_wsl :: cd /mnt/c/Dev/WSL tickets :: cd ~/dev/condor/Tickets/head twins :: cd ~/twins ## ----------------------------------------- cd_gambit :: cd ~/dev/condor/bitbucket/AWS/aws-infra-Gambit/head/condor-gambit-infra EOF ) local lnOpts=$(echo "${opts}" | grep -vE '^#' | grep -E "$(echo "$@" | tr -s ' ' | sed -E 's| |\.*|g')" | nl -i1 -n'rz' -v0 -w3) local selOpt=$(echo "${lnOpts}" | sort -ru | sed -E 's|(.*::)(.*##)(.*)|\1\3|g' | grep -iE "${1}" | fzf | sed -E 's|(^[0-9]+)(.*)|\1|g') selOpt=$(if [ "${selOpt}" == "" ]; then echo ""; else echo "${lnOpts}" | grep -E "^${selOpt}"; fi) if [ "${selOpt}" == "" ]; then echo ">>>>>>> nothing selected, cancel ..." return fi selOpt=$( echo "${selOpt}" | sed -E 's/(^.*)[ ]*::[ ]*(.*$)/\2/g' ) echo ">>>>>>> ${selOpt}" eval "${selOpt}" } function winpath () { base=$(echo "${1}" | sed -E 's|\\|/|g') drive=$(echo "${base}" | cut -d ':' -f 1 | tr '[:upper:]' '[:lower:]') drive=$(echo "/mnt/${drive}") path=$(echo "${base}" | cut -d ':' -f 2) echo "${drive}${path}" } ## <<< general ## ----------------------------------------------------------------------------- . ~/.local/bin/envaws . ~/.local/bin/git . ~/.local/bin/clouddk