bashrc_extension.sh 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  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. local selOpt=$(echo "${opts}" | grep -vE '^##' | nl -i1 -n'rz' -v0 -w3 | sort -ru | fzf)
  128. if [ "${selOpt}" == "" ]; then
  129. echo ">>>>>>> nothing selected, cancel ..."
  130. return
  131. fi
  132. selOpt=$(echo "${selOpt}" | tr '\t' ' ' | tr -s ' ')
  133. prfx=$( echo "${selOpt}" | cut -d ' ' -f 2 )
  134. mode=$( echo "${selOpt}" | cut -d ' ' -f 3 )
  135. selOpt=$( echo "${selOpt}" | cut -d ' ' -f 4-999 )
  136. swt=$( echo "${prfx:0:3}" )
  137. usr=''
  138. case "${prfx}" in
  139. expprv|exppbl|encfle|encflesgn)
  140. if [[ -z "$1" ]]; then echo "Fehler: Parameter 1 fehlt" >&2; return 1; fi;
  141. usr=$(echo "$(gpg --list-keys | grep uid | xargs -rI{} echo '{}' | tr -s ' ' | cut -d '<' -f 2 | sed 's/.$//')" | fzf)
  142. selOpt=$(printf "${selOpt}" "${usr}")
  143. ;;
  144. keyimp)
  145. if [[ -z "$1" ]]; then echo "Fehler: Parameter 1 fehlt" >&2; return 1; fi;
  146. ;;
  147. enccpbd|enccpbdsgn|keysgn)
  148. usr=$(echo "$(gpg --list-keys | grep uid | xargs -rI{} echo '{}' | tr -s ' ' | cut -d '<' -f 2 | sed 's/.$//')" | fzf)
  149. selOpt=$(printf "${selOpt}" "${usr}")
  150. ;;
  151. *)
  152. ;;
  153. esac
  154. echo "${usr}"
  155. echo ">>>>>>> ${selOpt}"
  156. eval "${selOpt}"
  157. }
  158. function qcat {
  159. local file=$(find . -type f -not -path '*/.terraform*' -not -path '*/.git*' | grep -iE "${1}" | fzf)
  160. cmd=$(printf "cat '%s'" "${file}")
  161. eval "${cmd}"
  162. }
  163. function qrun {
  164. eval $(cat "${1}" | grep -vE '^#' | sort -u | nl -w 3 -n 'rz' | sort -r | fzf | sed -E 's|^[0-9\t]+||g')
  165. }
  166. alias qvi='vi "$(find . -type f | fzf)"'
  167. function qcode (){
  168. local selOpt=$(eval $(printf "find . -type f -not -path '*/.terraform*' -not -path '*/.git*' | grep -Ev '\.(pem|pub)$' | grep -E '%s' | fzf" "${1:-.*}"))
  169. if [ "${selOpt}" == "" ]; then
  170. echo ">>>>>>> nothing selected, cancel ..."
  171. return
  172. fi
  173. echo ">>>>>>> code ${selOpt}"
  174. history -s "code ${selOpt}"
  175. eval "code ${selOpt}"
  176. }
  177. function stack() {
  178. local depot="${HOME}/depot"
  179. if [[ $# -ne 1 ]]; then
  180. echo "Usage: stack {pull|push|purge}"
  181. return 1
  182. fi
  183. case "$1" in
  184. push)
  185. echo "Stack: push"
  186. src=$(ls -1 | fzf)
  187. prfx=$(date +"%Y%m%d%H%M%S")
  188. echo ">>> ${prfx}"
  189. echo ">>> ${src}"
  190. if [[ -n "$src" ]]; then tar -czvf "${depot}/${prfx}_${src}.tgz" "${src}"; fi
  191. ;;
  192. pull)
  193. echo "Stack: pull"
  194. src=$(ls -1 "${depot}" | fzf)
  195. echo ">>> ${src}"
  196. trg=$(echo "${src}" | cut -d '_' -f 2 | rev | cut -d '.' -f 2 | rev)
  197. echo ">>> ${trg}"
  198. if [[ -n "$src" ]]; then tar -xzvf "${depot}/${src}" --strip-components=1; fi
  199. ;;
  200. purge)
  201. echo "Stack: purge"
  202. src=$(ls -1 "${depot}" | fzf)
  203. echo ">>> ${src}"
  204. if [[ -n "$src" ]]; then rm -Rfv "${depot}/${src}"; fi
  205. ;;
  206. *)
  207. echo "Ungültiger Parameter: $1"
  208. return 1
  209. ;;
  210. esac
  211. }
  212. function goto(){
  213. local opts=$(cat << EOF
  214. code :: cd ~/dev/condor/bitbucket/AWS
  215. tickets :: cd ~/dev/condor/Tickets/head
  216. ## -----------------------------------------
  217. cd_gambit :: cd ~/dev/condor/bitbucket/AWS/aws-infra-Gambit/head/condor-gambit-infra
  218. ## -----------------------------------------
  219. aws :: cd ~/.aws
  220. bin :: cd ~/.local/bin
  221. lcmdl :: cd ~/lcmodules_local/head
  222. twins :: cd ~/twins
  223. EOF
  224. )
  225. local lnOpts=$(echo "${opts}" | grep -vE '^#' | grep -E "$(echo "$@" | tr -s ' ' | sed -E 's| |\.*|g')" | nl -i1 -n'rz' -v0 -w3)
  226. local selOpt=$(echo "${lnOpts}" | sort -ru | sed -E 's|(.*::)(.*##)(.*)|\1\3|g' | grep -iE "${1}" | fzf | sed -E 's|(^[0-9]+)(.*)|\1|g')
  227. selOpt=$(if [ "${selOpt}" == "" ]; then echo ""; else echo "${lnOpts}" | grep -E "^${selOpt}"; fi)
  228. if [ "${selOpt}" == "" ]; then
  229. echo ">>>>>>> nothing selected, cancel ..."
  230. return
  231. fi
  232. selOpt=$( echo "${selOpt}" | sed -E 's/(^.*)[ ]*::[ ]*(.*$)/\2/g' )
  233. echo ">>>>>>> ${selOpt}"
  234. eval "${selOpt}"
  235. }
  236. function winpath () {
  237. base=$(echo "${1}" | sed -E 's|\\|/|g')
  238. drive=$(echo "${base}" | cut -d ':' -f 1 | tr '[:upper:]' '[:lower:]')
  239. drive=$(echo "/mnt/${drive}")
  240. path=$(echo "${base}" | cut -d ':' -f 2)
  241. echo "${drive}${path}"
  242. }
  243. ## <<< general
  244. ## -----------------------------------------------------------------------------
  245. . ~/.local/bin/envaws
  246. . ~/.local/bin/git
  247. . ~/.local/bin/clouddk