bashrc_extension.sh 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. #!/bin/bash
  2. ## >>> general
  3. 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\] '
  4. export PATH=~/.tfenv/bin:$PATH
  5. #export PATH=~/.local/bin:$PATH
  6. export EDITOR=vim
  7. export HISTCONTROL=ignoreboth:erasedups
  8. #export PATH=/mnt/c/Users/jan.diller/AppData/Local/Programs/Rancher\ Desktop/resources/resources/linux/bin:$PATH
  9. # ---------------------------------------------------------------------------------------------------
  10. alias jb='cd "${CC_PATH}"'
  11. alias l1='ls -1a'
  12. alias qm="xargs -rI{} mv '{}'"
  13. alias rr='rm -Rf'
  14. alias xi='xsel -bi'
  15. alias xo='xsel -bo'
  16. alias cls='clear'
  17. alias fdg='find . -type d | grep'
  18. alias ffg='find . -type f | grep'
  19. alias lsd="find . -maxdepth 1 -type d -not -path '*/.terraform*' -not -path '*/.git*'"
  20. alias oany='code "$(find -maxdepth 1 -type f | head -n 1)"'
  21. 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"
  22. alias globTrim="find . -type f -not -path '*/.terraform*' -not -path '*/.git*' | xargs -rI{} sed -i '{}' -e 's|[ ]*$||g'"
  23. function cc(){
  24. 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)"
  25. cc_path="${PWD}/${cc_path}"
  26. export CC_PATH="${cc_path}"
  27. cd "${CC_PATH}";
  28. }
  29. function cf(){
  30. 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)"
  31. cc_path=$(printf "${cc_path}" | rev | cut -d '/' -f 2-99 | rev)
  32. cc_path="${PWD}/${cc_path}"
  33. export CC_PATH="${cc_path}"
  34. cd "${CC_PATH}";
  35. }
  36. function ccb(){
  37. 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)"
  38. cc_file="${PWD}/${cc_file}"
  39. printf "'%s'" "${cc_file}" | xsel -bi
  40. }
  41. function diffho {
  42. while IFS= read res; do
  43. local head="${res}"
  44. local origin=$(echo "${res}" | sed 's|head|origin|g')
  45. diff -x '.git' -ruN "${origin}" "${head}"
  46. done < <(eval 'ls -1 | grep -E head$ | xargs -rI{} find '{}' -type f -not -path '*/.terraform*' -not -path '*/.git*' | sort -u | '"${1}"'')
  47. }
  48. function logall() {
  49. local all="$1"
  50. local err="$2"
  51. shift 2
  52. "$@" > >(tee "$all") 2> >(tee "$err" | tee -a "$all" >&2)
  53. }
  54. function mh(){
  55. local opts=$(cat << EOF
  56. dck :: . ______________
  57. dckab :q: docker run -u "$(id -u):$(id -g)" -it --rm -v "\${PWD}":/documents acdc /bin/bash
  58. dckar :: docker build -t acdc ~/dev/docker-doc/head
  59. dckar :q: docker run --rm -u $(id -u):$(id -g) -v $(pwd):/documents/ asciidoctor/docker-asciidoctor asciidoctor-pdf '${1}'
  60. dckst :q: sudo /usr/sbin/service docker start
  61. ecf :: . ______________
  62. ecf :: code ~/.aws/config ~/.aws/credentials
  63. ecf :: code ~/.local/bin/bashrc_extension.sh
  64. ecf :: code ~/.local/bin/envaws
  65. ecf :: code ~/.local/bin/git
  66. ecf :: code ~/.local/bin/terraform
  67. fnd :: . ______________
  68. fnd :: find -L . -type f -not -path '*/.terraform*' -not -path '*/.git*' | xargs -rI{} file "{}" | grep ASCII | cut -d ":" -f 1 | xargs -rI{} grep -EH '^' '{}'
  69. fnd :: find . -type f | grep -E '#Untitled.*|\.marks$' | xargs -rI{} rm -v '{}'
  70. 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')
  71. nxtcld :: . ______________
  72. nxtcld :q: nextcloud >/dev/null 2>&1 &
  73. oth :: . ______________
  74. oth :: . ~/.bashrc
  75. oth :: find -type f | grep -E '\.jr$|plan\.txt|state\.yaml' | xargs rm -f
  76. 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)
  77. oth :: sed -i -r 's/\x1B\[([0-9]{1,3}(;[0-9]{1,2};?)?)?[mGK]//g' "${1}"
  78. oth :: vi ~/.local/bin/bashrc_extension.sh
  79. oth :q: cp \$(winpath '${1}') .
  80. penv :: . ______________
  81. penv :: cat ~/.local/env.txt
  82. rdc :: . ______________
  83. rdc :: sudo /etc/init.d/xrdp start
  84. EOF
  85. )
  86. local selOpt=$(echo "${opts}" | grep -vE '^##' | nl -i1 -n'rz' -v0 -w3 | sort -ru | fzf)
  87. if [ "${selOpt}" == "" ]; then
  88. echo ">>>>>>> nothing selected, cancel ..."
  89. return
  90. fi
  91. mode=$( echo "${selOpt}" | sed -E 's/(^.*)([ ]*)(:[a-z]?:)([ ]*)(.*$)/\3/g' )
  92. selOpt=$( echo "${selOpt}" | sed -E 's/(^.*)([ ]*)(:[a-z]?:)([ ]*)(.*$)/\5/g' )
  93. case $mode in
  94. ":q:")
  95. echo ">>>>>>> ${selOpt}"
  96. history -s "${selOpt}"
  97. eval "${selOpt}"
  98. ;;
  99. *)
  100. echo ">>>>>>> ${selOpt} '$@'"
  101. history -s "${selOpt} '$@'"
  102. history -s "mh '$@'"
  103. eval "${selOpt} '$@'"
  104. ;;
  105. esac
  106. }
  107. function ord() {
  108. printf "&#%d;" "\"$1";
  109. }
  110. function ppp(){
  111. local opts=$(cat << EOF
  112. dcycpbd :q: xsel -bo | gpg --decrypt | xsel -bi
  113. dcyfle :q: $(printf "gpg --decrypt '%s'" "${1}" )
  114. dcyfle :q: $(printf "gpg --output '%s' --decrypt '%s'" $(echo "${1}" | rev | cut -d '.' -f 2-99 | rev) "${1}" )
  115. enccpbd :q: xsel -bo | gpg --encrypt --armor --recipient '%s' | xsel -bi
  116. enccpbdsgn :q: xsel -bo | gpg --encrypt --armor --sign --recipient '%s' | xsel -bi
  117. encfle :q: $(printf "gpg --encrypt --armor --recipient '%%s' '%s'" "${1}")
  118. encflesgn :q: $(printf "gpg --encrypt --armor --sign --recipient '%%s' '%s'" "${1}")
  119. exppbl :q: $(printf 'gpg --armor --export %%s >%s.pbl.asc' "${1}" )
  120. expprv :q: $(printf 'gpg --armor --export-secret-keys %%s >%s.prv.asc' "${1}" )
  121. keycrt :q: gpg --full-generate-key
  122. keyimp :q: $(printf 'gpg --import %s' "${1}" )
  123. keylst :q: gpg --list-keys
  124. keysgn :q: gpg --sign-key '%s'
  125. EOF
  126. )
  127. ## ## Import des eignen privaten Schlüssels
  128. ## Gib gpg --edit-key DEINE_EMAIL ein.
  129. ## * Tippe den Befehl trust.
  130. ## * Wähle die Stufe 5 (5 = I trust ultimately / Ich vertraue ultimativ).
  131. ## * Bestätige mit y (Ja) und beende mit save oder quit.
  132. local selOpt=$(echo "${opts}" | grep -vE '^##' | nl -i1 -n'rz' -v0 -w3 | sort -ru | fzf)
  133. if [ "${selOpt}" == "" ]; then
  134. echo ">>>>>>> nothing selected, cancel ..."
  135. return
  136. fi
  137. selOpt=$(echo "${selOpt}" | tr '\t' ' ' | tr -s ' ')
  138. prfx=$( echo "${selOpt}" | cut -d ' ' -f 2 )
  139. mode=$( echo "${selOpt}" | cut -d ' ' -f 3 )
  140. selOpt=$( echo "${selOpt}" | cut -d ' ' -f 4-999 )
  141. swt=$( echo "${prfx:0:3}" )
  142. usr=''
  143. case "${prfx}" in
  144. expprv|exppbl|encfle|encflesgn)
  145. if [[ -z "$1" ]]; then echo "Fehler: Parameter 1 fehlt" >&2; return 1; fi;
  146. usr=$(echo "$(gpg --list-keys | grep uid | xargs -rI{} echo '{}' | tr -s ' ' | cut -d '<' -f 2 | sed 's/.$//')" | fzf)
  147. selOpt=$(printf "${selOpt}" "${usr}")
  148. ;;
  149. keyimp)
  150. if [[ -z "$1" ]]; then echo "Fehler: Parameter 1 fehlt" >&2; return 1; fi;
  151. ;;
  152. enccpbd|enccpbdsgn|keysgn)
  153. usr=$(echo "$(gpg --list-keys | grep uid | xargs -rI{} echo '{}' | tr -s ' ' | cut -d '<' -f 2 | sed 's/.$//')" | fzf)
  154. selOpt=$(printf "${selOpt}" "${usr}")
  155. ;;
  156. *)
  157. ;;
  158. esac
  159. echo "${usr}"
  160. echo ">>>>>>> ${selOpt}"
  161. eval "${selOpt}"
  162. }
  163. function qcat {
  164. local file=$(find . -type f -not -path '*/.terraform*' -not -path '*/.git*' | grep -iE "${1}" | fzf)
  165. cmd=$(printf "cat '%s'" "${file}")
  166. eval "${cmd}"
  167. }
  168. function qrun {
  169. eval $(cat "${1}" | grep -vE '^#' | sort -u | nl -w 3 -n 'rz' | sort -r | fzf | sed -E 's|^[0-9\t]+||g')
  170. }
  171. alias qvi='vi "$(find . -type f | fzf)"'
  172. function qcode (){
  173. local selOpt=$(eval $(printf "find . -type f -not -path '*/.terraform*' -not -path '*/.git*' | grep -Ev '\.(pem|pub)$' | grep -E '%s' | fzf" "${1:-.*}"))
  174. if [ "${selOpt}" == "" ]; then
  175. echo ">>>>>>> nothing selected, cancel ..."
  176. return
  177. fi
  178. echo ">>>>>>> code ${selOpt}"
  179. history -s "code ${selOpt}"
  180. eval "code ${selOpt}"
  181. }
  182. function stack() {
  183. local depot="${HOME}/depot"
  184. if [[ $# -ne 1 ]]; then
  185. echo "Usage: stack {pull|push|purge}"
  186. return 1
  187. fi
  188. case "$1" in
  189. push)
  190. echo "Stack: push"
  191. src=$(ls -1 | fzf)
  192. prfx=$(date +"%Y%m%d%H%M%S")
  193. echo ">>> ${prfx}"
  194. echo ">>> ${src}"
  195. if [[ -n "$src" ]]; then tar -czvf "${depot}/${prfx}_${src}.tgz" "${src}"; fi
  196. ;;
  197. pull)
  198. echo "Stack: pull"
  199. src=$(ls -1 "${depot}" | fzf)
  200. echo ">>> ${src}"
  201. trg=$(echo "${src}" | cut -d '_' -f 2 | rev | cut -d '.' -f 2 | rev)
  202. echo ">>> ${trg}"
  203. if [[ -n "$src" ]]; then tar -xzvf "${depot}/${src}" --strip-components=1; fi
  204. ;;
  205. purge)
  206. echo "Stack: purge"
  207. src=$(ls -1 "${depot}" | fzf)
  208. echo ">>> ${src}"
  209. if [[ -n "$src" ]]; then rm -Rfv "${depot}/${src}"; fi
  210. ;;
  211. *)
  212. echo "Ungültiger Parameter: $1"
  213. return 1
  214. ;;
  215. esac
  216. }
  217. function goto(){
  218. local opts=$(cat << EOF
  219. aws :: cd ~/.aws
  220. bin :: cd ~/.local/bin
  221. code :: cd ~/dev/condor/bitbucket/AWS
  222. lcmdl :: cd ~/lcmodules_local/head
  223. mount_wsl :: cd /mnt/c/Dev/WSL
  224. tickets :: cd ~/dev/condor/Tickets/head
  225. twins :: cd ~/twins
  226. ## -----------------------------------------
  227. cd_gambit :: cd ~/dev/condor/bitbucket/AWS/aws-infra-Gambit/head/condor-gambit-infra
  228. EOF
  229. )
  230. local lnOpts=$(echo "${opts}" | grep -vE '^#' | grep -E "$(echo "$@" | tr -s ' ' | sed -E 's| |\.*|g')" | nl -i1 -n'rz' -v0 -w3)
  231. local selOpt=$(echo "${lnOpts}" | sort -ru | sed -E 's|(.*::)(.*##)(.*)|\1\3|g' | grep -iE "${1}" | fzf | sed -E 's|(^[0-9]+)(.*)|\1|g')
  232. selOpt=$(if [ "${selOpt}" == "" ]; then echo ""; else echo "${lnOpts}" | grep -E "^${selOpt}"; fi)
  233. if [ "${selOpt}" == "" ]; then
  234. echo ">>>>>>> nothing selected, cancel ..."
  235. return
  236. fi
  237. selOpt=$( echo "${selOpt}" | sed -E 's/(^.*)[ ]*::[ ]*(.*$)/\2/g' )
  238. echo ">>>>>>> ${selOpt}"
  239. eval "${selOpt}"
  240. }
  241. function winpath () {
  242. base=$(echo "${1}" | sed -E 's|\\|/|g')
  243. drive=$(echo "${base}" | cut -d ':' -f 1 | tr '[:upper:]' '[:lower:]')
  244. drive=$(echo "/mnt/${drive}")
  245. path=$(echo "${base}" | cut -d ':' -f 2)
  246. echo "${drive}${path}"
  247. }
  248. ## <<< general
  249. ## -----------------------------------------------------------------------------
  250. . ~/.local/bin/envaws
  251. . ~/.local/bin/git
  252. . ~/.local/bin/clouddk