From 916d8a6a450e4f09add146d313828b628e80b088 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Wed, 18 Nov 2020 16:25:48 +0100 Subject: [PATCH 01/54] update submodules --- vim/pack/plugins/start/fzf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/pack/plugins/start/fzf b/vim/pack/plugins/start/fzf index 7bd99a2..1ed25d7 160000 --- a/vim/pack/plugins/start/fzf +++ b/vim/pack/plugins/start/fzf @@ -1 +1 @@ -Subproject commit 7bd99a22eeba74c88ad60f860111247a052f5586 +Subproject commit 1ed25d76ba51f9b3ab66f75b73734be43d41b8c3 From 57964154f5fbe40dc81933d2299ddb3749a273c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 19 Nov 2020 09:20:50 +0100 Subject: [PATCH 02/54] update submodules --- vim/pack/plugins/start/fzf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/pack/plugins/start/fzf b/vim/pack/plugins/start/fzf index 7bd99a2..7acdaf0 160000 --- a/vim/pack/plugins/start/fzf +++ b/vim/pack/plugins/start/fzf @@ -1 +1 @@ -Subproject commit 7bd99a22eeba74c88ad60f860111247a052f5586 +Subproject commit 7acdaf0b4335a6c089bce5b73ff23aeb3b9d9c92 From b9038f9fa5ac657be0f24340bc34aa8b36943236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 19 Nov 2020 20:35:00 +0100 Subject: [PATCH 03/54] create destdir in mencfs --- functions.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/functions.sh b/functions.sh index 774f622..60f6bca 100755 --- a/functions.sh +++ b/functions.sh @@ -130,6 +130,7 @@ mencfs () { [ -z ${PKEY+x} ] && { EXIT; return 3; } [ -z ${ENCDIR+x} ] && { EXIT; return 4; } [ -z ${DESTDIR+x} ] && DESTDIR="$(dirname $ENCDIR)/$(basename $ENCDIR| tr '[:lower:]' '[:upper:]'| sed -e 's/^\.//')" + [ -d "$DESTDIR" ] || mkdir -p "$DESTDIR" $PASS "${PKEY}" 1>/dev/null 2>&1 || { logerror "entry $PKEY does not exist in passwordsotre"; return 5; } local ENCFS_PASSWORD=$($PASS "${PKEY}" | head -n1) From 31fcdd883ff085a29d576fe3e2c558548fa198e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 19 Nov 2020 20:35:06 +0100 Subject: [PATCH 04/54] setdate only when setdate=true --- bin/exif-fixdatetime | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/bin/exif-fixdatetime b/bin/exif-fixdatetime index b7e3ab9..f6297b2 100755 --- a/bin/exif-fixdatetime +++ b/bin/exif-fixdatetime @@ -143,13 +143,13 @@ run_fix () { if [ -n "${MIMEDEST+x}" ] ; then if $forcedate; then - [ -n "$newDateTimeOriginal" ] && exiftool "-DateTimeOriginal=$newDateTimeOriginal" "$file" - exiftool '-createdate Date: Thu, 19 Nov 2020 21:35:26 +0100 Subject: [PATCH 05/54] add 3gp --- bin/exif-fixdatetime | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/bin/exif-fixdatetime b/bin/exif-fixdatetime index b7e3ab9..f9d0f64 100755 --- a/bin/exif-fixdatetime +++ b/bin/exif-fixdatetime @@ -133,7 +133,7 @@ run_fix () { image/jpeg) MIMEDEST="${mimedestpic}/${subdestpic}" ;; - video/mp4|video/m4a) + video/mp4|video/m4a|video/3gpp) MIMEDEST="${mimedestvid}/${subdestvid}" ;; *) @@ -143,13 +143,13 @@ run_fix () { if [ -n "${MIMEDEST+x}" ] ; then if $forcedate; then - [ -n "$newDateTimeOriginal" ] && exiftool "-DateTimeOriginal=$newDateTimeOriginal" "$file" - exiftool '-createdate Date: Fri, 20 Nov 2020 09:07:01 +0100 Subject: [PATCH 06/54] overwrite file instead of create *_original setoriginalfilename --- bin/exif-fixdatetime | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/bin/exif-fixdatetime b/bin/exif-fixdatetime index f9d0f64..9d5d404 100755 --- a/bin/exif-fixdatetime +++ b/bin/exif-fixdatetime @@ -1,9 +1,12 @@ #!/bin/bash export SCRIPT_LOG=./$(basename $0).log +export LOGFILE=./$(basename $0).move.log [ -z "${move+x}" ] && move=false [ -z "${forcedate+x}" ] && forcedate=false [ -z "${setdate+x}" ] && setdate=true +[ -z "${setoriginalfilename+x}" ] && setoriginalfilename=false + # Pathdefinitions Default @@ -21,7 +24,7 @@ export SCRIPT_LOG=./$(basename $0).log help () { cat << EOF - Usage: $(basename $0) [move=[true|copy]] [setdate=[true|false]] [forcedate=[true|false]] [] + Usage: $(basename $0) [move=[true|copy]] [setdate=[true|false]] [forcedate=[true|false]] [setoriginalfilename=[false|true|force]] [] Defaults: @@ -29,6 +32,7 @@ help () { move=$move [false|true|copy] false: file is not moved to destination; true: file is moved; copy: copy file to destination forcedate=$forcedate [fase|true] false: datetimeoriginal and createdate is only updated from filename, if not set; true: tags are always updated setdate=$setdate [false|true] false: do not set date-tags, only if you are sure, tags are ok, and you want move or copy files; + setoriginalfilenamee=$setoriginalfilename [false|true|force] false: do not set originalfilename from filname (default); true: set it, if not set; force: set it, also if exists; # destination dest=$dest @@ -142,27 +146,38 @@ run_fix () { esac if [ -n "${MIMEDEST+x}" ] ; then + case $setoriginalfilename in + true) + $setoriginalfilename && exiftool "-originalfilename&1 |tee -a dest_exists)" + loginfo "$(exiftool '-Directory&1 |tee -a ${LOGFILE})" ;; copy) echo copy to ${dest}/${MIMEDEST}/%Y/%Y_%m - loginfo "$(exiftool -o . '-Directory&1 |tee -a ${LOGFILE})" logwarn "$(readlink -f "$file"): $(exiftool -filename -if '(not ($datetimeoriginal or $createdate))' "$file")" ;; *) From 4815e889029e7c938ec823194da79788779fbb88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Fri, 20 Nov 2020 13:56:23 +0100 Subject: [PATCH 07/54] fix output --- bin/exif-fixdatetime | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/bin/exif-fixdatetime b/bin/exif-fixdatetime index 9d5d404..909edcb 100755 --- a/bin/exif-fixdatetime +++ b/bin/exif-fixdatetime @@ -148,26 +148,34 @@ run_fix () { case $setoriginalfilename in true) - $setoriginalfilename && exiftool "-originalfilename Date: Fri, 20 Nov 2020 20:54:42 +0100 Subject: [PATCH 08/54] update submodules --- vim/pack/plugins/start/vim-airline | 2 +- vim/pack/plugins/start/vim-gitgutter | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index 5366671..91a8ada 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit 536667191d5bdc0afa3a18d7df229731e778815e +Subproject commit 91a8ada0f9fc589b57fe8aa459c8961c3a27287e diff --git a/vim/pack/plugins/start/vim-gitgutter b/vim/pack/plugins/start/vim-gitgutter index 987a333..a1f9f1f 160000 --- a/vim/pack/plugins/start/vim-gitgutter +++ b/vim/pack/plugins/start/vim-gitgutter @@ -1 +1 @@ -Subproject commit 987a33355ef424161fdbc4e5d625b5b5aed9704c +Subproject commit a1f9f1f728858892c82d27c7ab0216410d299757 From aa3ebc81684d66d0d8b8ecf844462505902a2d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Sat, 21 Nov 2020 23:28:03 +0100 Subject: [PATCH 09/54] update submodules --- vim/pack/plugins/start/vim-airline | 2 +- vim/pack/plugins/start/vim-fugitive | 2 +- vim/pack/plugins/start/vim-gitgutter | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index 5366671..a48f676 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit 536667191d5bdc0afa3a18d7df229731e778815e +Subproject commit a48f67657ff261422845d367772de38618ccc049 diff --git a/vim/pack/plugins/start/vim-fugitive b/vim/pack/plugins/start/vim-fugitive index 1a77f1c..660d2ba 160000 --- a/vim/pack/plugins/start/vim-fugitive +++ b/vim/pack/plugins/start/vim-fugitive @@ -1 +1 @@ -Subproject commit 1a77f1c00e12e8460f39098ec3289c5433d32512 +Subproject commit 660d2ba2b60026a9069ee005562ddad6a67f9fb0 diff --git a/vim/pack/plugins/start/vim-gitgutter b/vim/pack/plugins/start/vim-gitgutter index 987a333..f614693 160000 --- a/vim/pack/plugins/start/vim-gitgutter +++ b/vim/pack/plugins/start/vim-gitgutter @@ -1 +1 @@ -Subproject commit 987a33355ef424161fdbc4e5d625b5b5aed9704c +Subproject commit f614693b2a743d1b28245b2d1534f1180e2be2bf From da24e2fb91137ddac9bbfb721abef42d35caeeb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 23 Nov 2020 02:54:36 +0100 Subject: [PATCH 10/54] update submodules --- vim/pack/plugins/start/vim-airline | 2 +- vim/pack/plugins/start/vim-fugitive | 2 +- vim/pack/plugins/start/vim-gitgutter | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index 91a8ada..a48f676 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit 91a8ada0f9fc589b57fe8aa459c8961c3a27287e +Subproject commit a48f67657ff261422845d367772de38618ccc049 diff --git a/vim/pack/plugins/start/vim-fugitive b/vim/pack/plugins/start/vim-fugitive index 1a77f1c..660d2ba 160000 --- a/vim/pack/plugins/start/vim-fugitive +++ b/vim/pack/plugins/start/vim-fugitive @@ -1 +1 @@ -Subproject commit 1a77f1c00e12e8460f39098ec3289c5433d32512 +Subproject commit 660d2ba2b60026a9069ee005562ddad6a67f9fb0 diff --git a/vim/pack/plugins/start/vim-gitgutter b/vim/pack/plugins/start/vim-gitgutter index a1f9f1f..f614693 160000 --- a/vim/pack/plugins/start/vim-gitgutter +++ b/vim/pack/plugins/start/vim-gitgutter @@ -1 +1 @@ -Subproject commit a1f9f1f728858892c82d27c7ab0216410d299757 +Subproject commit f614693b2a743d1b28245b2d1534f1180e2be2bf From 0fc9fe4913773dbceff9c5769f8eeab1f10673b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Tue, 24 Nov 2020 11:53:46 +0100 Subject: [PATCH 11/54] update submodules --- vim/pack/plugins/start/fzf | 2 +- vim/pack/plugins/start/vim-fugitive | 2 +- vim/pack/plugins/start/vim-gitgutter | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/vim/pack/plugins/start/fzf b/vim/pack/plugins/start/fzf index 7acdaf0..3fe8eee 160000 --- a/vim/pack/plugins/start/fzf +++ b/vim/pack/plugins/start/fzf @@ -1 +1 @@ -Subproject commit 7acdaf0b4335a6c089bce5b73ff23aeb3b9d9c92 +Subproject commit 3fe8eeedc5f5180f9c9db76fca26844f8c6acf37 diff --git a/vim/pack/plugins/start/vim-fugitive b/vim/pack/plugins/start/vim-fugitive index 660d2ba..e904785 160000 --- a/vim/pack/plugins/start/vim-fugitive +++ b/vim/pack/plugins/start/vim-fugitive @@ -1 +1 @@ -Subproject commit 660d2ba2b60026a9069ee005562ddad6a67f9fb0 +Subproject commit e90478511d68cb8a0d8e5dea9c3629e7f0091f8c diff --git a/vim/pack/plugins/start/vim-gitgutter b/vim/pack/plugins/start/vim-gitgutter index f614693..bf813bb 160000 --- a/vim/pack/plugins/start/vim-gitgutter +++ b/vim/pack/plugins/start/vim-gitgutter @@ -1 +1 @@ -Subproject commit f614693b2a743d1b28245b2d1534f1180e2be2bf +Subproject commit bf813bb99070c22c0a462d79f5072adfb391e4e1 From d055df45226776623e698b80200cb219d0394d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Wed, 25 Nov 2020 16:27:08 +0100 Subject: [PATCH 12/54] update submodules --- vim/pack/plugins/start/fzf | 2 +- vim/pack/plugins/start/fzf.vim | 2 +- vim/pack/plugins/start/vim-fugitive | 2 +- vim/pack/plugins/start/vim-gitgutter | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vim/pack/plugins/start/fzf b/vim/pack/plugins/start/fzf index 7acdaf0..2983426 160000 --- a/vim/pack/plugins/start/fzf +++ b/vim/pack/plugins/start/fzf @@ -1 +1 @@ -Subproject commit 7acdaf0b4335a6c089bce5b73ff23aeb3b9d9c92 +Subproject commit 298342677107f19f2ef7035afcf5302fdf26aa51 diff --git a/vim/pack/plugins/start/fzf.vim b/vim/pack/plugins/start/fzf.vim index 53b3aea..cc13a4b 160000 --- a/vim/pack/plugins/start/fzf.vim +++ b/vim/pack/plugins/start/fzf.vim @@ -1 +1 @@ -Subproject commit 53b3aea0da5e3581e224c958dbc13558cbe5daee +Subproject commit cc13a4b728c7b76c63e6dc42f320cec955d74227 diff --git a/vim/pack/plugins/start/vim-fugitive b/vim/pack/plugins/start/vim-fugitive index 660d2ba..e904785 160000 --- a/vim/pack/plugins/start/vim-fugitive +++ b/vim/pack/plugins/start/vim-fugitive @@ -1 +1 @@ -Subproject commit 660d2ba2b60026a9069ee005562ddad6a67f9fb0 +Subproject commit e90478511d68cb8a0d8e5dea9c3629e7f0091f8c diff --git a/vim/pack/plugins/start/vim-gitgutter b/vim/pack/plugins/start/vim-gitgutter index f614693..bf813bb 160000 --- a/vim/pack/plugins/start/vim-gitgutter +++ b/vim/pack/plugins/start/vim-gitgutter @@ -1 +1 @@ -Subproject commit f614693b2a743d1b28245b2d1534f1180e2be2bf +Subproject commit bf813bb99070c22c0a462d79f5072adfb391e4e1 From 4bfbace1a0ef987ac5af607e7c33673e68e0cc61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Fri, 27 Nov 2020 19:38:57 +0100 Subject: [PATCH 13/54] add formats, add copy/move functions --- bin/exif-fixdatetime | 75 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 63 insertions(+), 12 deletions(-) diff --git a/bin/exif-fixdatetime b/bin/exif-fixdatetime index 909edcb..202d67b 100755 --- a/bin/exif-fixdatetime +++ b/bin/exif-fixdatetime @@ -6,6 +6,7 @@ export LOGFILE=./$(basename $0).move.log [ -z "${forcedate+x}" ] && forcedate=false [ -z "${setdate+x}" ] && setdate=true [ -z "${setoriginalfilename+x}" ] && setoriginalfilename=false +[ -z "${movecreatedate+x}" ] && movecreatedate=false @@ -29,7 +30,13 @@ help () { Defaults: # commands - move=$move [false|true|copy] false: file is not moved to destination; true: file is moved; copy: copy file to destination + move=$move [false|true|copy|rename|renameinplace|copyrename] + false: file is not moved to destination; + true: file is moved; copy: copy file to destination + copy: copy file to final destinateion + renameinplace: rename file to YYYYMMDD_HHmmss-c.ext in place (just rename file) + rename: move like true, but rename ist like renameinplace + copyrename: rename file in place and copy it to final destination with new name forcedate=$forcedate [fase|true] false: datetimeoriginal and createdate is only updated from filename, if not set; true: tags are always updated setdate=$setdate [false|true] false: do not set date-tags, only if you are sure, tags are ok, and you want move or copy files; setoriginalfilenamee=$setoriginalfilename [false|true|force] false: do not set originalfilename from filname (default); true: set it, if not set; force: set it, also if exists; @@ -46,7 +53,7 @@ help () { ${dest}/${mimedestvid}/${subdestvid}/%Y/%Y_%m" Supported Filet-extensions - *.jpg, *.jpeg, *.png, *.mp4 + *.jpg, *.jpeg, *.png, *.mp4, *.3gp, *.gif Examples: @@ -90,6 +97,13 @@ parsedatetime() { result="$(printf "%04d:%02d:%02d %02d:%02d:%02d" "${BASH_REMATCH[1]#0}" "${BASH_REMATCH[3]#0}" "${BASH_REMATCH[5]#0}" "${BASH_REMATCH[7]#0}" "${BASH_REMATCH[9]#0}" "${BASH_REMATCH[11]#0}")" fi + if [ -z "${result}" ]; then + # signal-2020-08-09-171936.jpg + if [[ $filename =~ ^.*([0-9]{4})(\.|-)([0-9]{2})(\.|-)([0-9]{2})( |_|-|" at ")([0-9]{2})([0-9]{2})([0-9]{2})(\.|-|\+|\(| ).*$ ]]; then + result="$(printf "%04d:%02d:%02d %02d:%02d:%02d" "${BASH_REMATCH[1]#0}" "${BASH_REMATCH[3]#0}" "${BASH_REMATCH[5]#0}" "${BASH_REMATCH[7]#0}" "${BASH_REMATCH[8]#0}" "${BASH_REMATCH[9]#0}")" + fi + fi + if [ -z "${result}" ]; then if [[ $filename =~ ^.*([0-9]{4})([0-9]{2})([0-9]{2})(_|-)([0-9]{2})([0-9]{2})([0-9]{2}).*$ ]]; then result="$(printf "%04d:%02d:%02d %02d:%02d:%02d" "${BASH_REMATCH[1]#0}" "${BASH_REMATCH[2]#0}" "${BASH_REMATCH[3]#0}" "${BASH_REMATCH[5]#0}" "${BASH_REMATCH[6]#0}" "${BASH_REMATCH[7]#0}")" @@ -119,6 +133,7 @@ parsedatetime() { fi fi + echo "$result" return 0 } @@ -137,6 +152,9 @@ run_fix () { image/jpeg) MIMEDEST="${mimedestpic}/${subdestpic}" ;; + image/gif) + MIMEDEST="${mimedestpic}/${subdestpic}" + ;; video/mp4|video/m4a|video/3gpp) MIMEDEST="${mimedestvid}/${subdestvid}" ;; @@ -148,11 +166,11 @@ run_fix () { case $setoriginalfilename in true) - loginfo -n "set original filename: " + loginfo "set original filename: " $setoriginalfilename && exiftool -overwrite_original "-originalfilename&1 |tee -a ${LOGFILE})" + if $movecreatedate ; then + loginfo "$(exiftool '-Directory&1 |tee -a ${LOGFILE})" + else + loginfo "$(exiftool '-Directory&1 |tee -a ${LOGFILE})" + fi ;; copy) echo copy to ${dest}/${MIMEDEST}/%Y/%Y_%m - loginfo "$(exiftool -o . '-Directory&1 |tee -a ${LOGFILE})" - logwarn "$(readlink -f "$file"): $(exiftool -filename -if '(not ($datetimeoriginal or $createdate))' "$file")" + if $movecreatedate ; then + loginfo "$(exiftool -o . '-Directory&1 |tee -a ${LOGFILE})" + logwarn "$(readlink -f "$file"): $(exiftool -filename -if '(not ($datetimeoriginal or $createdate))' "$file")" + else + loginfo "$(exiftool -o . '-Directory&1 |tee -a ${LOGFILE})" + logwarn "$(readlink -f "$file"): $(exiftool -filename -if '(not ($datetimeoriginal or $createdate))' "$file")" + fi + ;; + renameinplace) + echo rename inplace + if $movecreatedate ; then + loginfo "$(exiftool '-FileName&1 | tee -a ${LOGFILE})" + else + loginfo "$(exiftool '-FileName&1 | tee -a ${LOGFILE})" + fi + ;; + rename) + echo move to ${dest}/${MIMEDEST}/%Y/%Y_%m + if $movecreatedate ; then + loginfo "$(exiftool -v '-FileName&1 | tee -a ${LOGFILE})" + else + loginfo "$(exiftool -v '-FileName&1 | tee -a ${LOGFILE})" + fi + ;; + copyrename) + echo move to ${dest}/${MIMEDEST}/%Y/%Y_%m + if $movecreatedate ; then + loginfo "$(exiftool -o . '-FileName&1 | tee -a ${LOGFILE})" + else + loginfo "$(exiftool -o . '-FileName&1 | tee -a ${LOGFILE})" + fi ;; *) logwarn "value for move is neither »true« nor »copy«" @@ -210,9 +261,9 @@ if [ $# -gt 0 ]; then esac else - loginfo "Progress all *.jpg, *.jpeg, *.png and mp4, *.3gp files in pwd $(pwd)" - all=$(find ${maxdepth:+-maxdepth} ${maxdepth:+$maxdepth} -type f |grep -i ".jpg$\|.jpeg$\|.mp4$\|.png$\|.3gp$"|wc -l) - find ${maxdepth:+-maxdepth} ${maxdepth:+$maxdepth} -type f |grep -i ".jpg$\|.jpeg$\|.mp4$\|.png$\|.3gp$"|while read file; do + loginfo "Progress all *.jpg, *.jpeg, *.png and mp4, *.3gp, *.gif files in pwd $(pwd)" + all=$(find ${maxdepth:+-maxdepth} ${maxdepth:+$maxdepth} -type f |grep -i ".jpg$\|.jpeg$\|.mp4$\|.png$\|.3gp$\|.gif$"|wc -l) + find ${maxdepth:+-maxdepth} ${maxdepth:+$maxdepth} -type f |grep -i ".jpg$\|.jpeg$\|.mp4$\|.png$\|.3gp$\|.gif$"|while read file; do let "i=i+1" loginfo "$i/$all" run_fix "$file" From 888e5f6c20520267a5d27043d278c7d2ac2d7120 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Fri, 27 Nov 2020 20:55:31 +0100 Subject: [PATCH 14/54] update submodules --- vim/pack/plugins/start/vim-airline | 2 +- vim/pack/plugins/start/vim-airline-themes | 2 +- vim/pack/plugins/start/vim-fugitive | 2 +- vim/pack/plugins/start/vim-gitgutter | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index a48f676..06117a6 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit a48f67657ff261422845d367772de38618ccc049 +Subproject commit 06117a61e1218b2a866451d2ac4d8ddcd82c8543 diff --git a/vim/pack/plugins/start/vim-airline-themes b/vim/pack/plugins/start/vim-airline-themes index cd6f169..5cf03c3 160000 --- a/vim/pack/plugins/start/vim-airline-themes +++ b/vim/pack/plugins/start/vim-airline-themes @@ -1 +1 @@ -Subproject commit cd6f16978d5af4b9fb861be9d728732d72789df3 +Subproject commit 5cf03c355b64836ebcb681136539f48ada34f363 diff --git a/vim/pack/plugins/start/vim-fugitive b/vim/pack/plugins/start/vim-fugitive index e904785..7bcfe53 160000 --- a/vim/pack/plugins/start/vim-fugitive +++ b/vim/pack/plugins/start/vim-fugitive @@ -1 +1 @@ -Subproject commit e90478511d68cb8a0d8e5dea9c3629e7f0091f8c +Subproject commit 7bcfe539beee5fe8c542092732b6fd3786c6080e diff --git a/vim/pack/plugins/start/vim-gitgutter b/vim/pack/plugins/start/vim-gitgutter index bf813bb..dfe55e2 160000 --- a/vim/pack/plugins/start/vim-gitgutter +++ b/vim/pack/plugins/start/vim-gitgutter @@ -1 +1 @@ -Subproject commit bf813bb99070c22c0a462d79f5072adfb391e4e1 +Subproject commit dfe55e2b924b86c654b63edb9bedc42aa4e08048 From 98ffb534d441e610bc02edef52c5e455901b21ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Sat, 28 Nov 2020 16:12:37 +0100 Subject: [PATCH 15/54] lazy unmount, use XDG_RUNTIME_DIR decrypt mount --- functions.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/functions.sh b/functions.sh index 60f6bca..f34db95 100755 --- a/functions.sh +++ b/functions.sh @@ -127,9 +127,12 @@ mencfs () { return 2 fi + logdebug "ENCDIR: $ENCDIR" [ -z ${PKEY+x} ] && { EXIT; return 3; } [ -z ${ENCDIR+x} ] && { EXIT; return 4; } + [ -z "${DESTDIR+x}" ] && [ -n "${XDG_RUNTIME_DIR}" ] && DESTDIR="${XDG_RUNTIME_DIR}/decrypted/$(basename $ENCDIR| tr '[:lower:]' '[:upper:]'| sed -e 's/^\.//')" [ -z ${DESTDIR+x} ] && DESTDIR="$(dirname $ENCDIR)/$(basename $ENCDIR| tr '[:lower:]' '[:upper:]'| sed -e 's/^\.//')" + logdebug "DESTDIR: $DESTDIR" [ -d "$DESTDIR" ] || mkdir -p "$DESTDIR" $PASS "${PKEY}" 1>/dev/null 2>&1 || { logerror "entry $PKEY does not exist in passwordsotre"; return 5; } local ENCFS_PASSWORD=$($PASS "${PKEY}" | head -n1) @@ -165,14 +168,14 @@ uencfs () { else loginfo "umount encrypted directory" $1 >&2 sync - $FUSERMOUNT -u "$1" + $FUSERMOUNT -z -u "$1" fi else loginfo "no arguments given. Umount all mounted encfs-dirs" >&2 for i in $(mount|grep encfs|sed -e 's/^encfs on \(.*\)\ type.*$/\1/');do loginfo "$FUSERMOUNT -u $i" sync - $FUSERMOUNT -u "$i" + $FUSERMOUNT -z -u "$i" done EXIT return 1 From 420cb4663c82a066eea52b7442b55dc96e910b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Sat, 28 Nov 2020 17:42:42 +0100 Subject: [PATCH 16/54] modify promptcommand, use direnv to set umask --- bashrc_add | 3 +++ functions.sh | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/bashrc_add b/bashrc_add index dcfedf7..b62efbd 100755 --- a/bashrc_add +++ b/bashrc_add @@ -170,6 +170,9 @@ EOF # source loading workaround for x2go to forward local etoken to remote machine with forwardagent . "${MYSHELLCONFIG_BASE}/myshell_load_x2go_tokenforward" + promptcommandmunge "_prompt_command" + promptcommandmunge "_umask_hook" + which direnv >/dev/null && eval "$(direnv hook bash)" cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" ==8<=== finished configure new shell ================ $(date) ===============8<== diff --git a/functions.sh b/functions.sh index f34db95..09f2d18 100755 --- a/functions.sh +++ b/functions.sh @@ -6,9 +6,23 @@ export TMUX_SESSION_DIRS SETPROXY_CREDS_DIRS KERBEROS_CONFIG_DIRS +promptcommandmunge () { + ENTRY + case ":${PROMPT_COMMAND}:" in + *:"$1":*) + ;; + *) + if [ "$2" = "after" ] ; then + PROMPT_COMMAND=$PROMPT_COMMAND:$1 + else + PROMPT_COMMAND=$1:$PROMPT_COMMAND + fi + esac + EXIT +} ## this function updates in combination with PROMPT_COMMAND the shell-environment-variables in tmus-sessions, # every time prompt is called. It does it only, when called from tmux (Environment TMUX is set) -function prompt_command() { +function _prompt_command() { # [ -z "${TMUX+x}" ] || eval "$(tmux show-environment -s)" if [ -n "${TMUX}" ]; then @@ -16,8 +30,25 @@ function prompt_command() { fi } -PROMPT_COMMAND=prompt_command +# Append `;` if PROMPT_COMMAND is not empty +#PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND;}_prompt_command" + + +# To make the code more reliable on detecting the default umask +function _umask_hook { + # Record the default umask value on the 1st run + [[ -z $DEFAULT_UMASK ]] && export DEFAULT_UMASK="$(builtin umask)" + + if [[ -n $UMASK ]]; then + umask "$UMASK" + else + umask "$DEFAULT_UMASK" + fi +} + +# Append `;` if PROMPT_COMMAND is not empty +#PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND;}_umask_hook" cpb() { scp "$1" ${SSH_CLIENT%% *}:~/Work From d8ca48066b95d9762323998a3341b8381f5c4a02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Sat, 28 Nov 2020 18:00:17 +0100 Subject: [PATCH 17/54] rename function, fix promptcommandmunge --- bashrc_add | 2 +- functions.sh | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bashrc_add b/bashrc_add index b62efbd..d534cc9 100755 --- a/bashrc_add +++ b/bashrc_add @@ -170,7 +170,7 @@ EOF # source loading workaround for x2go to forward local etoken to remote machine with forwardagent . "${MYSHELLCONFIG_BASE}/myshell_load_x2go_tokenforward" - promptcommandmunge "_prompt_command" + promptcommandmunge "_tmux_hook" promptcommandmunge "_umask_hook" which direnv >/dev/null && eval "$(direnv hook bash)" diff --git a/functions.sh b/functions.sh index 09f2d18..f9daaf3 100755 --- a/functions.sh +++ b/functions.sh @@ -8,21 +8,21 @@ export TMUX_SESSION_DIRS SETPROXY_CREDS_DIRS KERBEROS_CONFIG_DIRS promptcommandmunge () { ENTRY - case ":${PROMPT_COMMAND}:" in - *:"$1":*) + case ";${PROMPT_COMMAND};" in + "*;$1;*") ;; *) if [ "$2" = "after" ] ; then - PROMPT_COMMAND=$PROMPT_COMMAND:$1 + PROMPT_COMMAND="${PROMPT_COMMAND};$1" else - PROMPT_COMMAND=$1:$PROMPT_COMMAND + PROMPT_COMMAND="$1;${PROMPT_COMMAND}" fi esac EXIT } ## this function updates in combination with PROMPT_COMMAND the shell-environment-variables in tmus-sessions, # every time prompt is called. It does it only, when called from tmux (Environment TMUX is set) -function _prompt_command() { +function _tmux_hook() { # [ -z "${TMUX+x}" ] || eval "$(tmux show-environment -s)" if [ -n "${TMUX}" ]; then @@ -32,7 +32,7 @@ function _prompt_command() { } # Append `;` if PROMPT_COMMAND is not empty -#PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND;}_prompt_command" +#PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND;}_tmux_hook" # To make the code more reliable on detecting the default umask From 70377a11dd96df01334e9affd76f117313cf5f8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Sun, 29 Nov 2020 22:21:58 +0100 Subject: [PATCH 18/54] update submodules --- vim/pack/plugins/start/fzf.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/pack/plugins/start/fzf.vim b/vim/pack/plugins/start/fzf.vim index cc13a4b..cabfd44 160000 --- a/vim/pack/plugins/start/fzf.vim +++ b/vim/pack/plugins/start/fzf.vim @@ -1 +1 @@ -Subproject commit cc13a4b728c7b76c63e6dc42f320cec955d74227 +Subproject commit cabfd44a8b1666e9b0c1b18f55646dd8ec25d0d9 From 7c67b440956a84f44214d2eb38a4919ed8aa9e5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 07:57:37 +0100 Subject: [PATCH 19/54] start tmux in background --- myshell_load_defaults | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/myshell_load_defaults b/myshell_load_defaults index 5cf012d..fa68e32 100644 --- a/myshell_load_defaults +++ b/myshell_load_defaults @@ -90,7 +90,7 @@ Press CTRL+C to cancel screen startup EOF sleep 1 #screen -UxR - tmux attach-session + tmux attach-session & fi unset -f pathmunge From 60bf5bf4671c72722b61b5c0a79943f795ca4393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 08:03:36 +0100 Subject: [PATCH 20/54] start tmux at the end --- bashrc_add | 4 ++++ myshell_load_defaults | 4 +++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/bashrc_add b/bashrc_add index d534cc9..e6c1f43 100755 --- a/bashrc_add +++ b/bashrc_add @@ -12,6 +12,9 @@ # set SSHS to false, if not set [ -z ${SSHS+x} ] && export SSHS=false +# set STARTTMUX to false, if not set +[ -z ${STARTTMUXDEFAULT+x} ] && export STARTTMUXDEFAULT=false + # check if we are a interactive shell # https://guide.bash.academy/expansions/ # https://www.tldp.org/LDP/abs/html/refcards.html#AEN22473 @@ -174,6 +177,7 @@ EOF promptcommandmunge "_umask_hook" which direnv >/dev/null && eval "$(direnv hook bash)" + ${STARTTMUX-$STARTTMUXDEFAULT} && tmux attach-session cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" ==8<=== finished configure new shell ================ $(date) ===============8<== diff --git a/myshell_load_defaults b/myshell_load_defaults index fa68e32..1f81982 100644 --- a/myshell_load_defaults +++ b/myshell_load_defaults @@ -90,7 +90,8 @@ Press CTRL+C to cancel screen startup EOF sleep 1 #screen -UxR - tmux attach-session & + #tmux attach-session + STARTTMUX=true fi unset -f pathmunge @@ -146,6 +147,7 @@ export -f reachable-default [ -z "${SSH_AGENTS_DEFAULT_DIR+x}" ] || mkdir -p "${SSH_AGENTS_DEFAULT_DIR}" + #cat << EOF > "${SSH_AGENTS_DEFAULT_DIR}/agent-default-$(hostname)" #SSH_AUTH_SOCK=${SSH_AUTH_SOCK}; export SSH_AUTH_SOCK; #SSH_AGENT_PID=${SSH_AGENT_PID}; export SSH_AGENT_PID; From f3d51da34c24bbe61d5329e919cb4653d86028a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 08:07:17 +0100 Subject: [PATCH 21/54] dialog about start tmux also at the end --- bashrc_add | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/bashrc_add b/bashrc_add index e6c1f43..9322243 100755 --- a/bashrc_add +++ b/bashrc_add @@ -177,7 +177,19 @@ EOF promptcommandmunge "_umask_hook" which direnv >/dev/null && eval "$(direnv hook bash)" - ${STARTTMUX-$STARTTMUXDEFAULT} && tmux attach-session + if ${STARTTMUX-$STARTTMUXDEFAULT} ; then + cat << EOF + +"User: $USER - $UID" + +Starting or resuming screen session +Press CTRL+C to cancel screen startup + +EOF + sleep 1 + #screen -UxR + tmux attach-session + fi cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" ==8<=== finished configure new shell ================ $(date) ===============8<== From 9e30bce9c2ffde3d37a6dbcdeb1a72171fe45763 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 08:11:15 +0100 Subject: [PATCH 22/54] start tmux at the end, change variable-names --- bashrc_add | 9 ++- myshell_load_defaults | 156 +----------------------------------------- 2 files changed, 5 insertions(+), 160 deletions(-) diff --git a/bashrc_add b/bashrc_add index 9322243..34f5e52 100755 --- a/bashrc_add +++ b/bashrc_add @@ -9,11 +9,9 @@ #trap 'failure ${LINENO} "$BASH_COMMAND"' ERR -# set SSHS to false, if not set +# set some variables to defaults, if not set in .bashrc [ -z ${SSHS+x} ] && export SSHS=false - -# set STARTTMUX to false, if not set -[ -z ${STARTTMUXDEFAULT+x} ] && export STARTTMUXDEFAULT=false +[ -z ${STARTTMUX+x} ] && export STARTTMUX=false # check if we are a interactive shell # https://guide.bash.academy/expansions/ @@ -177,7 +175,8 @@ EOF promptcommandmunge "_umask_hook" which direnv >/dev/null && eval "$(direnv hook bash)" - if ${STARTTMUX-$STARTTMUXDEFAULT} ; then + # Start tmux if not defined as STARTTMUX in bashrc + if ${STARTTMUXDEFAULT-$STARTTMUX} ; then cat << EOF "User: $USER - $UID" diff --git a/myshell_load_defaults b/myshell_load_defaults index 1f81982..b1dfb70 100644 --- a/myshell_load_defaults +++ b/myshell_load_defaults @@ -1,155 +1 @@ -#!/bin/bash - -# if we are root, exit after 5 Minutes -case $(tty) in - /dev/tty[0-9]*) - case $(id -u) in - 0) - TMOUT=${MYSHELLCONFIG_ROOT_TMOUT:-500} - ;; - *) - TMOUT=${MYSHELLCONFIG_USER_TMOUT:-1000} - ;; - esac - loginfo "Run in TTY -> set autologout \$TMOUT=$TMOUT" >&2 - ;; - *) - loginfo "Run in graphical terminal - set no autologout" >&2 - unset TMOUT - ;; -esac - -# Load default values, functions, aliases for myshellconfig -if ! $SSHS; then - if [ -e ${MYSHELLCONFIG_BASE}/functions.sh ]; then - . ${MYSHELLCONFIG_BASE}/functions.sh - else - return - fi - - - - ###################################################################################### - # ls is not in color on all systems - export LS_OPTIONS='--color=auto' - eval "`dircolors`" - - ####################################################################################### - # User specific aliases and function - - - if [ -d "${MYSHELLCONFIG_BASE}/bin" ] ; then - pathmunge "${MYSHELLCONFIG_BASE}/bin" - export PATH - fi - - if [ -d "${MYSHELLCONFIG_BASE}/git-credential-pass" ] ; then - pathmunge "${MYSHELLCONFIG_BASE}/git-credential-pass" - export PATH - fi - - if [ -f "${MYSHELLCONFIG_BASE}/aliases" ]; then - . "${MYSHELLCONFIG_BASE}/aliases" - fi - - if [ -f "${MYSHELLCONFIG_BASE}/PS1" ]; then - . "${MYSHELLCONFIG_BASE}/PS1" - fi - -# Fehler anfang -#set -x - if [ -e "${MYSHELLCONFIG_BASH_COMPLETION}" ]; then - for i in $( ls "${MYSHELLCONFIG_BASH_COMPLETION}" ); do - . "${MYSHELLCONFIG_BASH_COMPLETION}/${i}" - done - unset i - fi - -#set +x -# Fehler ende - - if [ -f "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" ]; then - . "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" - fi - - - ######################################################################################### - - - # Go HOME - #cd ${HOME} - - if test ! $TMUX && test $SSH_TTY && test $TERM != screen && test $(systemctl status tmux@${USER}.service 1>/dev/null 2>&1; echo $? ) -eq 0; then - cat << EOF - -"User: $USER - $UID" - -Starting or resuming screen session -Press CTRL+C to cancel screen startup - -EOF - sleep 1 - #screen -UxR - #tmux attach-session - STARTTMUX=true - fi - - unset -f pathmunge - -else - # run with temporary config - - case $TERM in - *screen*) - loginfo BASHRC: $BASHRC -> source it - #[ -e $BASHRC ] && . "$BASHRC" - if [ ! -z ${BASHRC+x} ]; then - if [ -e $BASHRC ] ; then - exec bash --rcfile "$BASHRC" -i /dev/null - else - exec bash -i - fi - else - exec bash -i - fi - - ;; - esac - -fi - -# Disable Ctrl+s to freeze terminal -# Source https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps -stty -ixon -export HISTCONTROL=erasedups:ignorespace:ignoredups -export HISTIGNORE="ls:l:cd:exit:pwd:date:mencfs:" -export HISTTIMEFORMAT='%F %T ' -export HISTSIZE=999999 - -loginfo "bashrc_add sourced" 2>&1 |tee -a ${MYSHELLCONFIG_LOGFILE} >&2 -#echo "bashrc_add sourced" >&2 - -# Export several functions for being usable in subshells -export -f token -export -f sudo -export -f reachable -export -f reachable-default - - - - -[ -z "${SSH_IDENTITIES_DEFAULT_DIR+x}" ] && { SSH_IDENTITIES_DEFAULT_DIR="${HOME}/.ssh/identities"; export SSH_IDENTITIES_DEFAULT_DIR; } -[ -z "${SSH_AGENTS_DEFAULT_DIR+x}" ] && { SSH_AGENTS_DEFAULT_DIR="${HOME}/.ssh/agents"; export SSH_AGENTS_DEFAULT_DIR; } -[ -z "${SSH_AGENT_SOCKETS_DEFAULT_DIR+x}" ] && { SSH_AGENT_SOCKETS_DEFAULT_DIR="${HOME}/.ssh/agents"; export SSH_AGENT_SOCKETS_DEFAULT_DIR; } -[ -z "${SSH_AGENT_DEFAULT_OPTIONS+x}" ] && { SSH_AGENT_DEFAULT_OPTIONS='-t 7200'; export SSH_AGENT_DEFAULT_OPTIONS; } -[ -z "${SSH_ADD_DEFAULT_OPTIONS+x}" ] && { SSH_ADD_DEFAULT_OPTIONS="-t 7200"; export SSH_ADD_DEFAULT_OPTIONS; } -[ -z "${SSH_DEFAULT_IDENTITY+x}" ] && { SSH_DEFAULT_IDENTITY="default"; export SSH_DEFAULT_IDENTITY; } - -[ -z "${SSH_AGENTS_DEFAULT_DIR+x}" ] || mkdir -p "${SSH_AGENTS_DEFAULT_DIR}" - - -#cat << EOF > "${SSH_AGENTS_DEFAULT_DIR}/agent-default-$(hostname)" -#SSH_AUTH_SOCK=${SSH_AUTH_SOCK}; export SSH_AUTH_SOCK; -#SSH_AGENT_PID=${SSH_AGENT_PID}; export SSH_AGENT_PID; -#loginfo Agent pid ${SSH_AGENT_PID}; -#EOF + # Start tmux if not defined as STARTTMUX in bashrc - set variable From a04e3a402785ff073ac15183d16e45f38334aa62 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 08:35:20 +0100 Subject: [PATCH 23/54] add debug --- bashrc_add | 3 +++ 1 file changed, 3 insertions(+) diff --git a/bashrc_add b/bashrc_add index 34f5e52..58afc37 100755 --- a/bashrc_add +++ b/bashrc_add @@ -176,6 +176,7 @@ EOF which direnv >/dev/null && eval "$(direnv hook bash)" # Start tmux if not defined as STARTTMUX in bashrc + logwarn "start tmux" if ${STARTTMUXDEFAULT-$STARTTMUX} ; then cat << EOF @@ -188,7 +189,9 @@ EOF sleep 1 #screen -UxR tmux attach-session + logwarn "started tmux" fi + logwarn "after" cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" ==8<=== finished configure new shell ================ $(date) ===============8<== From 22641f3aa009d9b82a9b8c51f3483d2483940742 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 08:36:36 +0100 Subject: [PATCH 24/54] change debug --- bashrc_add | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bashrc_add b/bashrc_add index 58afc37..f17c0b0 100755 --- a/bashrc_add +++ b/bashrc_add @@ -176,7 +176,7 @@ EOF which direnv >/dev/null && eval "$(direnv hook bash)" # Start tmux if not defined as STARTTMUX in bashrc - logwarn "start tmux" + logwarn "start tmux ${STARTTMUXDEFAULT-$STARTTMUX}" if ${STARTTMUXDEFAULT-$STARTTMUX} ; then cat << EOF From 7f1e709731ce02a12a588e730abe27d060f396d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 08:38:00 +0100 Subject: [PATCH 25/54] change debug --- bashrc_add | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bashrc_add b/bashrc_add index f17c0b0..130e7ed 100755 --- a/bashrc_add +++ b/bashrc_add @@ -176,7 +176,7 @@ EOF which direnv >/dev/null && eval "$(direnv hook bash)" # Start tmux if not defined as STARTTMUX in bashrc - logwarn "start tmux ${STARTTMUXDEFAULT-$STARTTMUX}" + logwarn "start tmux ${STARTTMUXDEFAULT} - ${STARTTMUXDEFAULT-$STARTTMUX}" if ${STARTTMUXDEFAULT-$STARTTMUX} ; then cat << EOF From f1aa0e2fc2aba524d33c505badb91ab1814a98af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 09:40:25 +0100 Subject: [PATCH 26/54] readd accidenially deleted code --- myshell_load_defaults | 146 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 145 insertions(+), 1 deletion(-) diff --git a/myshell_load_defaults b/myshell_load_defaults index b1dfb70..5ada0de 100644 --- a/myshell_load_defaults +++ b/myshell_load_defaults @@ -1 +1,145 @@ - # Start tmux if not defined as STARTTMUX in bashrc - set variable +#!/bin/bash + +# if we are root, exit after 5 Minutes +case $(tty) in + /dev/tty[0-9]*) + case $(id -u) in + 0) + TMOUT=${MYSHELLCONFIG_ROOT_TMOUT:-500} + ;; + *) + TMOUT=${MYSHELLCONFIG_USER_TMOUT:-1000} + ;; + esac + loginfo "Run in TTY -> set autologout \$TMOUT=$TMOUT" >&2 + ;; + *) + loginfo "Run in graphical terminal - set no autologout" >&2 + unset TMOUT + ;; +esac + +# Load default values, functions, aliases for myshellconfig +if ! $SSHS; then + if [ -e ${MYSHELLCONFIG_BASE}/functions.sh ]; then + . ${MYSHELLCONFIG_BASE}/functions.sh + else + return + fi + + + + ###################################################################################### + # ls is not in color on all systems + export LS_OPTIONS='--color=auto' + eval "`dircolors`" + + ####################################################################################### + # User specific aliases and function + + + if [ -d "${MYSHELLCONFIG_BASE}/bin" ] ; then + pathmunge "${MYSHELLCONFIG_BASE}/bin" + export PATH + fi + + if [ -d "${MYSHELLCONFIG_BASE}/git-credential-pass" ] ; then + pathmunge "${MYSHELLCONFIG_BASE}/git-credential-pass" + export PATH + fi + + if [ -f "${MYSHELLCONFIG_BASE}/aliases" ]; then + . "${MYSHELLCONFIG_BASE}/aliases" + fi + + if [ -f "${MYSHELLCONFIG_BASE}/PS1" ]; then + . "${MYSHELLCONFIG_BASE}/PS1" + fi + +# Fehler anfang +#set -x + if [ -e "${MYSHELLCONFIG_BASH_COMPLETION}" ]; then + for i in $( ls "${MYSHELLCONFIG_BASH_COMPLETION}" ); do + . "${MYSHELLCONFIG_BASH_COMPLETION}/${i}" + done + unset i + fi + +#set +x +# Fehler ende + + if [ -f "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" ]; then + . "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" + fi + + + ######################################################################################### + + + # Go HOME + #cd ${HOME} + + # Start tmux if not defined as STARTTMUX in bashrc + if test ! $TMUX && test $SSH_TTY && test $TERM != screen && test $(systemctl status tmux@${USER}.service 1>/dev/null 2>&1; echo $? ) -eq 0; then + STARTTMUX=true + fi + + unset -f pathmunge + +else + # run with temporary config + + case $TERM in + *screen*) + loginfo BASHRC: $BASHRC -> source it + #[ -e $BASHRC ] && . "$BASHRC" + if [ ! -z ${BASHRC+x} ]; then + if [ -e $BASHRC ] ; then + exec bash --rcfile "$BASHRC" -i /dev/null + else + exec bash -i + fi + else + exec bash -i + fi + + ;; + esac + +fi + +# Disable Ctrl+s to freeze terminal +# Source https://www.digitalocean.com/community/tutorials/how-to-use-bash-history-commands-and-expansions-on-a-linux-vps +stty -ixon +export HISTCONTROL=erasedups:ignorespace:ignoredups +export HISTIGNORE="ls:l:cd:exit:pwd:date:mencfs:" +export HISTTIMEFORMAT='%F %T ' +export HISTSIZE=999999 + +loginfo "bashrc_add sourced" 2>&1 |tee -a ${MYSHELLCONFIG_LOGFILE} >&2 +#echo "bashrc_add sourced" >&2 + +# Export several functions for being usable in subshells +export -f token +export -f sudo +export -f reachable +export -f reachable-default + + + + +[ -z "${SSH_IDENTITIES_DEFAULT_DIR+x}" ] && { SSH_IDENTITIES_DEFAULT_DIR="${HOME}/.ssh/identities"; export SSH_IDENTITIES_DEFAULT_DIR; } +[ -z "${SSH_AGENTS_DEFAULT_DIR+x}" ] && { SSH_AGENTS_DEFAULT_DIR="${HOME}/.ssh/agents"; export SSH_AGENTS_DEFAULT_DIR; } +[ -z "${SSH_AGENT_SOCKETS_DEFAULT_DIR+x}" ] && { SSH_AGENT_SOCKETS_DEFAULT_DIR="${HOME}/.ssh/agents"; export SSH_AGENT_SOCKETS_DEFAULT_DIR; } +[ -z "${SSH_AGENT_DEFAULT_OPTIONS+x}" ] && { SSH_AGENT_DEFAULT_OPTIONS='-t 7200'; export SSH_AGENT_DEFAULT_OPTIONS; } +[ -z "${SSH_ADD_DEFAULT_OPTIONS+x}" ] && { SSH_ADD_DEFAULT_OPTIONS="-t 7200"; export SSH_ADD_DEFAULT_OPTIONS; } +[ -z "${SSH_DEFAULT_IDENTITY+x}" ] && { SSH_DEFAULT_IDENTITY="default"; export SSH_DEFAULT_IDENTITY; } + +[ -z "${SSH_AGENTS_DEFAULT_DIR+x}" ] || mkdir -p "${SSH_AGENTS_DEFAULT_DIR}" + + +#cat << EOF > "${SSH_AGENTS_DEFAULT_DIR}/agent-default-$(hostname)" +#SSH_AUTH_SOCK=${SSH_AUTH_SOCK}; export SSH_AUTH_SOCK; +#SSH_AGENT_PID=${SSH_AGENT_PID}; export SSH_AGENT_PID; +#loginfo Agent pid ${SSH_AGENT_PID}; +#EOF From 00ff3298acbf7b0978300cfb2587dcd445ac620f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 09:43:27 +0100 Subject: [PATCH 27/54] fix variables, start tmux at the very end --- bashrc_add | 20 +++++++++++--------- myshell_load_defaults | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/bashrc_add b/bashrc_add index 130e7ed..f06bb60 100755 --- a/bashrc_add +++ b/bashrc_add @@ -175,8 +175,16 @@ EOF promptcommandmunge "_umask_hook" which direnv >/dev/null && eval "$(direnv hook bash)" + cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" +==8<=== finished configure new shell ================ $(date) ===============8<== + +EOF +#else +# echo "non-interactive shell" >&2 + SCRIPTEXIT + # Start tmux if not defined as STARTTMUX in bashrc - logwarn "start tmux ${STARTTMUXDEFAULT} - ${STARTTMUXDEFAULT-$STARTTMUX}" + logdebug "start tmux ${STARTTMUXDEFAULT} - ${STARTTMUXDEFAULT-$STARTTMUX}" if ${STARTTMUXDEFAULT-$STARTTMUX} ; then cat << EOF @@ -189,14 +197,8 @@ EOF sleep 1 #screen -UxR tmux attach-session - logwarn "started tmux" + logdebug "started tmux" fi - logwarn "after" - cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" -==8<=== finished configure new shell ================ $(date) ===============8<== + logdebug "after" -EOF -#else -# echo "non-interactive shell" >&2 - SCRIPTEXIT fi diff --git a/myshell_load_defaults b/myshell_load_defaults index 5ada0de..9add397 100644 --- a/myshell_load_defaults +++ b/myshell_load_defaults @@ -81,7 +81,7 @@ if ! $SSHS; then # Start tmux if not defined as STARTTMUX in bashrc if test ! $TMUX && test $SSH_TTY && test $TERM != screen && test $(systemctl status tmux@${USER}.service 1>/dev/null 2>&1; echo $? ) -eq 0; then - STARTTMUX=true + STARTTMUXDEFAULT=true fi unset -f pathmunge From 862a671a6668093c61033a61558901f567a8b078 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 30 Nov 2020 10:07:35 +0100 Subject: [PATCH 28/54] update submodules --- vim/pack/plugins/start/nerdtree-git-plugin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/pack/plugins/start/nerdtree-git-plugin b/vim/pack/plugins/start/nerdtree-git-plugin index 9e33a3f..6b843d3 160000 --- a/vim/pack/plugins/start/nerdtree-git-plugin +++ b/vim/pack/plugins/start/nerdtree-git-plugin @@ -1 +1 @@ -Subproject commit 9e33a3fe8aa90f5ece2439f3b1b3a98fe7e35f85 +Subproject commit 6b843d3742d01b98a229ed2e6d3782f6d3f21651 From 00f35371870fd4dc07014c8231eca2ec770cb00a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Wed, 2 Dec 2020 15:57:33 +0100 Subject: [PATCH 29/54] update submodules --- vim/pack/plugins/start/nerdtree-git-plugin | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/pack/plugins/start/nerdtree-git-plugin b/vim/pack/plugins/start/nerdtree-git-plugin index 9e33a3f..6b843d3 160000 --- a/vim/pack/plugins/start/nerdtree-git-plugin +++ b/vim/pack/plugins/start/nerdtree-git-plugin @@ -1 +1 @@ -Subproject commit 9e33a3fe8aa90f5ece2439f3b1b3a98fe7e35f85 +Subproject commit 6b843d3742d01b98a229ed2e6d3782f6d3f21651 From 023d0a036dc60ec5fbc3dcc3bd7414a91929609f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Sat, 5 Dec 2020 19:01:17 +0100 Subject: [PATCH 30/54] add function crtime --- functions.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/functions.sh b/functions.sh index f9daaf3..57ab3ca 100755 --- a/functions.sh +++ b/functions.sh @@ -886,4 +886,14 @@ EOF rescan_scsi () { echo "- - -" > /sys/class/scsi_host/host0/scan } + +get_crtime() { + for target in "${@}"; do + inode=$(stat -c %i "${target}") + fs=$(df --output=source "${target}" | tail -1) + crtime=$(sudo debugfs -R 'stat <'"${inode}"'>' "${fs}" 2>/dev/null | + grep -oP 'crtime.*--\s*\K.*') + printf "%s\t%s\n" "${target}" "${crtime}" + done + } #EOF From e0f42bb5cffe38489fe5fe5acb691c7c36820ada Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 7 Dec 2020 00:20:23 +0100 Subject: [PATCH 31/54] update submodules --- vim/pack/plugins/start/fzf | 2 +- vim/pack/plugins/start/vim-airline | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vim/pack/plugins/start/fzf b/vim/pack/plugins/start/fzf index 2983426..00a3610 160000 --- a/vim/pack/plugins/start/fzf +++ b/vim/pack/plugins/start/fzf @@ -1 +1 @@ -Subproject commit 298342677107f19f2ef7035afcf5302fdf26aa51 +Subproject commit 00a36103316456227b5a3331e58155e43f713f79 diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index 06117a6..2cea83e 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit 06117a61e1218b2a866451d2ac4d8ddcd82c8543 +Subproject commit 2cea83eb88e0a6d1461a4f081016d6ca4f1c29c8 From 0d0fbfea97ea020acf4361e171fb5b1b6f33b1ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz=20=28admin=29?= Date: Mon, 7 Dec 2020 03:18:57 +0100 Subject: [PATCH 32/54] update submodules --- vim/pack/plugins/start/fzf | 2 +- vim/pack/plugins/start/vim-airline | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/vim/pack/plugins/start/fzf b/vim/pack/plugins/start/fzf index 2983426..00a3610 160000 --- a/vim/pack/plugins/start/fzf +++ b/vim/pack/plugins/start/fzf @@ -1 +1 @@ -Subproject commit 298342677107f19f2ef7035afcf5302fdf26aa51 +Subproject commit 00a36103316456227b5a3331e58155e43f713f79 diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index 06117a6..2cea83e 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit 06117a61e1218b2a866451d2ac4d8ddcd82c8543 +Subproject commit 2cea83eb88e0a6d1461a4f081016d6ca4f1c29c8 From 411e5a2edc585118d64d0bfadfd2412d2035b848 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Tue, 8 Dec 2020 19:07:54 +0100 Subject: [PATCH 33/54] set home, if XDG_RUNTIME_DIR not defined --- functions.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/functions.sh b/functions.sh index 57ab3ca..97a1f8d 100755 --- a/functions.sh +++ b/functions.sh @@ -332,6 +332,8 @@ sshmyshellconfig() { echo loginfo cleanup from old config rm -rf ~/server-config && echo rm -rf ~/server-config + loginfo git clone + git clone --recurse-submodules $MYSHELLCONFIG_GIT_REMOTE \${HOME}/${MYSHELLCONFIG_SUBPATH} EOF EXIT @@ -385,8 +387,8 @@ EOF if [ $# -ge 1 ]; then if [ -e "${TMPBASHCONFIG}" ] ; then local RCMD="/bin/bash --noprofile --norc -c " - local REMOTETMPBASHCONFIG=$(ssh -T ${SSH_OPTS} $@ "mktemp -p \${XDG_RUNTIME_DIR} -t bashrc.XXXXXXXX --suffix=.conf"| tr -d '[:space:]' ) - local REMOTETMPVIMCONFIG=$(ssh -T ${SSH_OPTS} $@ "mktemp -p \${XDG_RUNTIME_DIR} -t vimrc.XXXXXXXX --suffix=.conf"| tr -d '[:space:]') + local REMOTETMPBASHCONFIG=$(ssh -T ${SSH_OPTS} $@ "mktemp -p \${XDG_RUNTIME_DIR-~} -t bashrc.XXXXXXXX --suffix=.conf"| tr -d '[:space:]' ) + local REMOTETMPVIMCONFIG=$(ssh -T ${SSH_OPTS} $@ "mktemp -p \${XDG_RUNTIME_DIR-~} -t vimrc.XXXXXXXX --suffix=.conf"| tr -d '[:space:]') # Add additional aliases to bashrc for remote-machine cat << EOF >> "${TMPBASHCONFIG}" From 79be1880069ffb4e4251c472b1b20e2507452e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Wed, 9 Dec 2020 02:32:26 +0100 Subject: [PATCH 34/54] update submodules --- vim/pack/plugins/start/fzf | 2 +- vim/pack/plugins/start/fzf.vim | 2 +- vim/pack/plugins/start/nerdtree-git-plugin | 2 +- vim/pack/plugins/start/vim-fugitive | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/vim/pack/plugins/start/fzf b/vim/pack/plugins/start/fzf index 00a3610..00f4551 160000 --- a/vim/pack/plugins/start/fzf +++ b/vim/pack/plugins/start/fzf @@ -1 +1 @@ -Subproject commit 00a36103316456227b5a3331e58155e43f713f79 +Subproject commit 00f4551a7b9edda202f15f43e694f949f04927de diff --git a/vim/pack/plugins/start/fzf.vim b/vim/pack/plugins/start/fzf.vim index cabfd44..8fa9cf0 160000 --- a/vim/pack/plugins/start/fzf.vim +++ b/vim/pack/plugins/start/fzf.vim @@ -1 +1 @@ -Subproject commit cabfd44a8b1666e9b0c1b18f55646dd8ec25d0d9 +Subproject commit 8fa9cf052409bbadf6bf24711b63bdb52c15c786 diff --git a/vim/pack/plugins/start/nerdtree-git-plugin b/vim/pack/plugins/start/nerdtree-git-plugin index 6b843d3..5fa0e3e 160000 --- a/vim/pack/plugins/start/nerdtree-git-plugin +++ b/vim/pack/plugins/start/nerdtree-git-plugin @@ -1 +1 @@ -Subproject commit 6b843d3742d01b98a229ed2e6d3782f6d3f21651 +Subproject commit 5fa0e3e1487b17f8a23fc2674ebde5f55ce6a816 diff --git a/vim/pack/plugins/start/vim-fugitive b/vim/pack/plugins/start/vim-fugitive index 7bcfe53..7afa1cf 160000 --- a/vim/pack/plugins/start/vim-fugitive +++ b/vim/pack/plugins/start/vim-fugitive @@ -1 +1 @@ -Subproject commit 7bcfe539beee5fe8c542092732b6fd3786c6080e +Subproject commit 7afa1cfaa62e7fc6f891d0d59f4b10d046b5fd8e From 927d67331d0353aae4367438d66f964ce5d1eac9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz=20=28admin=29?= Date: Wed, 9 Dec 2020 08:44:22 +0100 Subject: [PATCH 35/54] update submodules --- vim/pack/plugins/start/fzf | 2 +- vim/pack/plugins/start/fzf.vim | 2 +- vim/pack/plugins/start/nerdtree-git-plugin | 2 +- vim/pack/plugins/start/vim-airline | 2 +- vim/pack/plugins/start/vim-fugitive | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/vim/pack/plugins/start/fzf b/vim/pack/plugins/start/fzf index 00a3610..00f4551 160000 --- a/vim/pack/plugins/start/fzf +++ b/vim/pack/plugins/start/fzf @@ -1 +1 @@ -Subproject commit 00a36103316456227b5a3331e58155e43f713f79 +Subproject commit 00f4551a7b9edda202f15f43e694f949f04927de diff --git a/vim/pack/plugins/start/fzf.vim b/vim/pack/plugins/start/fzf.vim index cabfd44..8fa9cf0 160000 --- a/vim/pack/plugins/start/fzf.vim +++ b/vim/pack/plugins/start/fzf.vim @@ -1 +1 @@ -Subproject commit cabfd44a8b1666e9b0c1b18f55646dd8ec25d0d9 +Subproject commit 8fa9cf052409bbadf6bf24711b63bdb52c15c786 diff --git a/vim/pack/plugins/start/nerdtree-git-plugin b/vim/pack/plugins/start/nerdtree-git-plugin index 6b843d3..5fa0e3e 160000 --- a/vim/pack/plugins/start/nerdtree-git-plugin +++ b/vim/pack/plugins/start/nerdtree-git-plugin @@ -1 +1 @@ -Subproject commit 6b843d3742d01b98a229ed2e6d3782f6d3f21651 +Subproject commit 5fa0e3e1487b17f8a23fc2674ebde5f55ce6a816 diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index 2cea83e..c074620 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit 2cea83eb88e0a6d1461a4f081016d6ca4f1c29c8 +Subproject commit c074620bfd0dc990afcfb07df91781e5b9caa66c diff --git a/vim/pack/plugins/start/vim-fugitive b/vim/pack/plugins/start/vim-fugitive index 7bcfe53..7afa1cf 160000 --- a/vim/pack/plugins/start/vim-fugitive +++ b/vim/pack/plugins/start/vim-fugitive @@ -1 +1 @@ -Subproject commit 7bcfe539beee5fe8c542092732b6fd3786c6080e +Subproject commit 7afa1cfaa62e7fc6f891d0d59f4b10d046b5fd8e From ec669d7872fbb1c46793bee169d5ad7046c9bd60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Wed, 9 Dec 2020 15:56:05 +0100 Subject: [PATCH 36/54] make gnome extensions permanent --- functions.sh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/functions.sh b/functions.sh index 97a1f8d..9a2123e 100755 --- a/functions.sh +++ b/functions.sh @@ -676,6 +676,18 @@ function gnome-shell-extensions-enable-defaults() { EXIT } +gnome-shell-extensions-make-actual-permanent() { + ENTRY + file="${HOME}/.config/gnome-shell-extensions-default.list" + local EXTENSIONS=$(gsettings get org.gnome.shell enabled-extensions) + line="[org/gnome/shell]" + for line in ${EXTENSIONS[@]}; do + loginfo "add $line to $file" + grep -xqF -- ${line} ${file} || echo $line >> $file + done + + EXIT +} gnome-shell-extensions-make-actual-permanent-systemwide() { ENTRY # https://people.gnome.org/~pmkovar/system-admin-guide/extensions-enable.html From 4637865fd33449dc5af211306a7d6087491390ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 08:57:30 +0100 Subject: [PATCH 37/54] modify updated --- bashrc_add | 9 +++++++++ bin/git-myshellconfig-checkout | 21 +++++++++++++-------- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/bashrc_add b/bashrc_add index f06bb60..41385b8 100755 --- a/bashrc_add +++ b/bashrc_add @@ -80,6 +80,15 @@ EOF SCRIPTENTRY # define functions + + lastupdatesubmodules() { + date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules + } + lastupdaterepo() { + date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_repo + } + + ckrepo () { # check if remote repo is reachable if $MYSHELLCONFIG_GIT_SYNC; then diff --git a/bin/git-myshellconfig-checkout b/bin/git-myshellconfig-checkout index 81ee9a4..44aece0 100755 --- a/bin/git-myshellconfig-checkout +++ b/bin/git-myshellconfig-checkout @@ -21,7 +21,7 @@ [ -z "${MYSHELLCONFIG_GIT_BRANCH+x}" ] && export MYSHELLCONFIG_GIT_BRANCH=master gitupdateend() { -cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" + cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" +-----ENDE git update repo $(date) ---------------------------------+ @@ -59,18 +59,23 @@ done #echo -n " remote: ${MYSHELLCONFIG_GIT_REMOTE_NAME}, branch: ${MYSHELLCONFIG_GIT_BRANCH}: " # Check for updates in submodules only if last check was INTERVALL hours in the past -updated=$(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) -logtrace "dosubmodupdate before: $dosubmodupdate" -if [ $updated -lt $(date --date="${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") -a ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then +if [ $(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \ + -lt $(date --date="${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \ + -a ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then + [ -z "${dosubmodupdate+x}" ] && dorepoupdate="true" +fi + +if [ $(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \ + -lt $(date --date="${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \ + -a ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then [ -z "${dosubmodupdate+x}" ] && dosubmodupdate="true" fi -logtrace "dosubmodupdate after: $dosubmodupdate" #echo $SGIT fetch ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 1>&2 -loginfo "fetch repo${dosubmodupdate:+ and submodules}" +loginfo "fetch ${dorepoupdate:+ repo}${dosubmodupdate:+ and submodules}" $SGIT fetch ${dosubmodupdate:+--recurse-submodules} ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 2>>"${MYSHELLCONFIG_LOGFILE}"|| { logwarn fetch failed; gitupdateend; exit 1; } if ${dosubmodupdate:-false}; then - date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules + lastupdatesubmodules fi echo "Check for local changes:" >> "${MYSHELLCONFIG_LOGFILE}" @@ -112,7 +117,7 @@ loginfo "repo${dosubmodupdate:+ and submodules} synced" loginfo "update and commit submodules" logdebug "$($SGIT submodule update --remote)" logdebug "$($SGIT commit -a -m 'update submodules')" - date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules + lastupdatesubmodules logwarn "submodules synced" fi #else From 19f095ce0aed0fdc9cc14b614dfe7cba7d4e199e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 08:58:46 +0100 Subject: [PATCH 38/54] update submodules --- vim/pack/plugins/start/vim-airline | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index 2cea83e..f39208f 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit 2cea83eb88e0a6d1461a4f081016d6ca4f1c29c8 +Subproject commit f39208f1a074fb525270312a20c87521a50c74ef From 09d3aea23ad728cee841aec0b08e5def4b2c8af3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 09:00:15 +0100 Subject: [PATCH 39/54] debug --- bashrc_add | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bashrc_add b/bashrc_add index 41385b8..8abb00a 100755 --- a/bashrc_add +++ b/bashrc_add @@ -81,10 +81,10 @@ EOF SCRIPTENTRY # define functions - lastupdatesubmodules() { + lastupdatesubmodules () { date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules } - lastupdaterepo() { + lastupdaterepo () { date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_repo } From 7c54585db905a71b546aa34f77f48a0848b9c7da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 09:09:32 +0100 Subject: [PATCH 40/54] debug --- bashrc_add | 8 -------- bin/git-myshellconfig-checkout | 11 +++++++++-- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/bashrc_add b/bashrc_add index 8abb00a..cafed70 100755 --- a/bashrc_add +++ b/bashrc_add @@ -81,14 +81,6 @@ EOF SCRIPTENTRY # define functions - lastupdatesubmodules () { - date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules - } - lastupdaterepo () { - date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_repo - } - - ckrepo () { # check if remote repo is reachable if $MYSHELLCONFIG_GIT_SYNC; then diff --git a/bin/git-myshellconfig-checkout b/bin/git-myshellconfig-checkout index 44aece0..767b752 100755 --- a/bin/git-myshellconfig-checkout +++ b/bin/git-myshellconfig-checkout @@ -20,6 +20,13 @@ [ -z "${MYSHELLCONFIG_GIT_REMOTE_NAME+x}" ] && export MYSHELLCONFIG_GIT_REMOTE_NAME=origin [ -z "${MYSHELLCONFIG_GIT_BRANCH+x}" ] && export MYSHELLCONFIG_GIT_BRANCH=master +lastupdatesubmodules () { + date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules +} +lastupdaterepo () { + date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_repo +} + gitupdateend() { cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" @@ -62,7 +69,7 @@ done if [ $(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \ -lt $(date --date="${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \ -a ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then - [ -z "${dosubmodupdate+x}" ] && dorepoupdate="true" + [ -z "${dosrepoupdate+x}" ] && dorepoupdate="true" fi if [ $(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \ @@ -72,7 +79,7 @@ if [ $(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodule fi #echo $SGIT fetch ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 1>&2 -loginfo "fetch ${dorepoupdate:+ repo}${dosubmodupdate:+ and submodules}" +loginfo "fetch repo${dosubmodupdate:+ and submodules}" $SGIT fetch ${dosubmodupdate:+--recurse-submodules} ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 2>>"${MYSHELLCONFIG_LOGFILE}"|| { logwarn fetch failed; gitupdateend; exit 1; } if ${dosubmodupdate:-false}; then lastupdatesubmodules From e0e815339a7f9e9ea0beac8efd45f879c48e6e6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 09:18:18 +0100 Subject: [PATCH 41/54] set default --- bashrc_add | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bashrc_add b/bashrc_add index cafed70..112951a 100755 --- a/bashrc_add +++ b/bashrc_add @@ -37,12 +37,14 @@ if [[ $- = *i* ]] ; then [ -z "${GIT_AUTHOR_EMAIL+x}" ] && export GIT_AUTHOR_EMAIL=$USEREMAIL [ -z "${GIT_COMMITTER_NAME+x}" ] && export GIT_COMMITTER_NAME=$FULLNAME [ -z "${GIT_COMMITTER_EMAIL+x}" ] && export GIT_COMMITTER_EMAIL=$USEREMAIL + [ -z "${MYSHELLCONFIG_GIT_TIMEOUT+x}" ] && export MYSHELLCONFIG_GIT_TIMEOUT=5s [ -z "${MYSHELLCONFIG_GIT_CHECKOUT_TIMEOUT+x}" ] && export MYSHELLCONFIG_GIT_CHECKOUT_TIMEOUT=20s [ -z "${MYSHELLCONFIG_GIT_SYNC+x}" ] && export MYSHELLCONFIG_GIT_SYNC=true [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT=true [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL=48 #intervall in hours [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/" + [ -z "${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT=5s # hardcoded git export SGIT="git -C ${MYSHELLCONFIG_BASE}" @@ -108,7 +110,8 @@ EOF else gco="$MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS" fi - ${MYSHELLCONFIG_BASE}/bin/git-myshellconfig-checkout ${gco}|| nok="not " 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 + #${MYSHELLCONFIG_BASE}/bin/git-myshellconfig-checkout ${gco}|| nok="not " 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 + ${MYSHELLCONFIG_BASE}/bin/git-myshellconfig-checkout ${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS:=${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT}}|| nok="not " 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 loginfo "$(printf '%s\n' "${nok}synced" )" [ -z "$nok" ] && mkdir -pv "${MYSHELLCONFIG_LOGDIR}" From 1cc4fa67ff67a48e23fdda894bb32945ae3dba38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 09:22:36 +0100 Subject: [PATCH 42/54] change defaults --- bashrc_add | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bashrc_add b/bashrc_add index 112951a..1ea1536 100755 --- a/bashrc_add +++ b/bashrc_add @@ -44,7 +44,7 @@ if [[ $- = *i* ]] ; then [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT=true [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL=48 #intervall in hours [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/" - [ -z "${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT=5s + [ -z "${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h" # hardcoded git export SGIT="git -C ${MYSHELLCONFIG_BASE}" From df7192a675795772d1f0f2e5ea82da566aa0276b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 09:26:21 +0100 Subject: [PATCH 43/54] remove unused code --- bashrc_add | 6 ------ 1 file changed, 6 deletions(-) diff --git a/bashrc_add b/bashrc_add index 1ea1536..db74163 100755 --- a/bashrc_add +++ b/bashrc_add @@ -105,12 +105,6 @@ EOF if which git >/dev/null; then loginfo -n "Sync config with ${MYSHELLCONFIG_GIT_SERVER}: " # MYSHELLCONFIG_GITCHECKOUTSCRIPT_OPTIONS are options for bin/git-myshellconfig-checkout - if [ -z ${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS+x} ]; then - gco="-h" - else - gco="$MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS" - fi - #${MYSHELLCONFIG_BASE}/bin/git-myshellconfig-checkout ${gco}|| nok="not " 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 ${MYSHELLCONFIG_BASE}/bin/git-myshellconfig-checkout ${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS:=${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT}}|| nok="not " 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 loginfo "$(printf '%s\n' "${nok}synced" )" [ -z "$nok" ] && mkdir -pv "${MYSHELLCONFIG_LOGDIR}" From b930a511eb88a46831fbbe129bb45cbe07a26543 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 09:31:38 +0100 Subject: [PATCH 44/54] change variable from MYHSHELLCONFIG_ to MSC_ and fix --- README.md | 32 ++++----- aliases | 6 +- bashrc_add | 72 ++++++++++----------- bin/git-myshellconfig-checkout | 64 +++++++++--------- functions.sh | 60 ++++++++--------- myshell_git_sync | 114 ++++++++++++++++----------------- myshell_load_defaults | 36 +++++------ vimrc | 6 +- 8 files changed, 195 insertions(+), 195 deletions(-) diff --git a/README.md b/README.md index ad2f8c8..1e9ba92 100644 --- a/README.md +++ b/README.md @@ -49,7 +49,7 @@ Ausloggen und neu Einloggen. ## Lokale Configuration in ~/.bashrc werden vor der Zeile zum Einbinden der myshellconfig die Variablen eingefügt um damit ein hostspezifisches Verhalten zu steuern ``` -MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS= +MSC_GIT_CHECKOUTSCRIPT_OPTIONS= ``` Mögliche Optionen: @@ -64,13 +64,13 @@ Mit der Option -s kann ein Update der Submodules (tmux-, vim-plugins) erzwungen ``` -MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS="" +MSC_GIT_CHECKOUTSCRIPT_OPTIONS="" ``` ### Git Protokolle für push und pull ``` -MYSHELLCONFIG_GIT_REMOTE_PROTOCOL=git # git ist default -MYSHELLCONFIG_GIT_REMOTE_PUSH_PROTOCOL=$MYSHELLCONFIG_GIT_REMOTE_PROTOCOL # MYSHELLCONFIG_GIT_REMOTE_PROTOCOL ist default +MSC_GIT_REMOTE_PROTOCOL=git # git ist default +MSC_GIT_REMOTE_PUSH_PROTOCOL=$MSC_GIT_REMOTE_PROTOCOL # MSC_GIT_REMOTE_PROTOCOL ist default ``` Mögliche Optionen: @@ -78,12 +78,12 @@ Mögliche Optionen: * git - (default) Gitprotokoll ist git (Auf manchen Umgebungen kann der dazu notwenidge Port gesperrt sein) * http - wenn git nicht möglich ist, kann das http/https Protokoll verwendet werden. (ist langsamer als git, jedoch ist fast überall Port 80 oder 440 freigeschaltet) * ssh - Wenn auch schreibend auf das Repo zugegriffen werden soll, so muss Privatekey, Pubkey (und wenn konfiguriert Certifikate mit den notwendigen Principals) vorhanden sein, dann kann das ssh-Prodokoll verwendet werden. - * file - Das entfernte Repository ist auf einem USB-Stick, welcher unter /media/$USER/gitstick beim Einstecken gemountet wird. Der Pfad ist anpassbar (siehe MYSHELLCONFIG_GIT_REPO_PATH) + * file - Das entfernte Repository ist auf einem USB-Stick, welcher unter /media/$USER/gitstick beim Einstecken gemountet wird. Der Pfad ist anpassbar (siehe MSC_GIT_REPO_PATH) Vim Plugins werden prinzipiell von github.com bezogen. Für spezielle Anwendungsfälle (github.com ist per firewall gesperrt), kann man diese auch in eigenen Repos hosten. Um diese eigenen Repos zu verwenden, muss in ~/.bashrc die Variable entsprechend gesetzt werden. Es ist ein Verzeichnis anzugeben, unter dem alle Pluginrepos als bare-Repos gecloned werden. Wichtig ist, dass die Usernamenverzeichnisse von github.com hier auch vorhanden sind, damit ohne dieser gesetzten Variable die Plugins direkt von github.com geladen werden können. ``` -MYSHELLCONFIG_VIM_PLUGINS=https://my.git.server/public/Vim +MSC_VIM_PLUGINS=https://my.git.server/public/Vim ``` Z.B. das Plugin Vundle.vim hat ist auf github unter dieser URL zu finden @@ -97,17 +97,17 @@ https://my.git.server/public/Vim/gmarik/Vundle ### Über ~/.bashrc manuell festlegbare Variablen und ihre Default-Werte, wenn nicht manuell gesetzt: ``` -MYSHELLCONFIG_SUBPATH=.local/myshellconfig -MYSHELLCONFIG_BASE="${HOME}/${MYSHELLCONFIG_SUBPATH}" -MYSHELLCONFIG_LOGDIR="${MYSHELLCONFIG_BASE}/logs" -MYSHELLCONFIG_LOGFILE="${MYSHELLCONFIG_LOGDIR}/git.log" -MYSHELLCONFIG_GIT_TIMEOUT=5s +MSC_SUBPATH=.local/myshellconfig +MSC_BASE="${HOME}/${MSC_SUBPATH}" +MSC_LOGDIR="${MSC_BASE}/logs" +MSC_LOGFILE="${MSC_LOGDIR}/git.log" +MSC_GIT_TIMEOUT=5s -MYSHELLCONFIG_GIT_SERVER="git.schuerz.at" -MYSHELLCONFIG_GIT_REPO_NAME="server-config.git" -MYSHELLCONFIG_GIT_REPO_PATH_HTTP="/public/" -MYSHELLCONFIG_GIT_REPO_PATH_SSH=":public/" -MYSHELLCONFIG_GIT_REPO_PATH_GIT="/public/" +MSC_GIT_SERVER="git.schuerz.at" +MSC_GIT_REPO_NAME="server-config.git" +MSC_GIT_REPO_PATH_HTTP="/public/" +MSC_GIT_REPO_PATH_SSH=":public/" +MSC_GIT_REPO_PATH_GIT="/public/" ``` diff --git a/aliases b/aliases index 2d05293..146132e 100644 --- a/aliases +++ b/aliases @@ -61,9 +61,9 @@ alias goarchive='[ -e $(xdg-user-dir ARCHIVE) ] && cd $(xdg-user-dir ARCHIVE)' alias godebian='cd ~/debian' alias gofvwm='cd /home/jakob/src/fvwmverve/' alias gofvwmsys='cd /usr/share/fvwm-verve/' -alias goserverconfig='cd $MYSHELLCONFIG_BASE' -alias gomyshellconfig='cd $MYSHELLCONFIG_BASE' -alias catmyshellconfiglog='cat $MYSHELLCONFIG_LOGFILE' +alias goserverconfig='cd $MSC_BASE' +alias gomyshellconfig='cd $MSC_BASE' +alias catmyshellconfiglog='cat $MSC_LOGFILE' alias goxund='cd /home/jakob/xundeenergie.at/' # system-dirs diff --git a/bashrc_add b/bashrc_add index db74163..21397b0 100755 --- a/bashrc_add +++ b/bashrc_add @@ -21,11 +21,11 @@ if [[ $- = *i* ]] ; then # define variables # Base Path - [ -z "${MYSHELLCONFIG_SUBPATH+x}" ] && export MYSHELLCONFIG_SUBPATH=".local/myshellconfig" - [ -z "${MYSHELLCONFIG_BASE+x}" ] && export MYSHELLCONFIG_BASE="${HOME}/${MYSHELLCONFIG_SUBPATH}" + [ -z "${MSC_SUBPATH+x}" ] && export MSC_SUBPATH=".local/myshellconfig" + [ -z "${MSC_BASE+x}" ] && export MSC_BASE="${HOME}/${MSC_SUBPATH}" # hardcoded paths - export MYSHELLCONFIG_BASE_PARENT="$(dirname $MYSHELLCONFIG_BASE)" - export MYSHELLCONFIG_BASH_COMPLETION="${HOME}/${MYSHELLCONFIG_SUBPATH}/bash_completion.d" + export MSC_BASE_PARENT="$(dirname $MSC_BASE)" + export MSC_BASH_COMPLETION="${HOME}/${MSC_SUBPATH}/bash_completion.d" # Userdata [ -z "${USERNAME+x}" ] && export USERNAME="$USER" @@ -38,35 +38,35 @@ if [[ $- = *i* ]] ; then [ -z "${GIT_COMMITTER_NAME+x}" ] && export GIT_COMMITTER_NAME=$FULLNAME [ -z "${GIT_COMMITTER_EMAIL+x}" ] && export GIT_COMMITTER_EMAIL=$USEREMAIL - [ -z "${MYSHELLCONFIG_GIT_TIMEOUT+x}" ] && export MYSHELLCONFIG_GIT_TIMEOUT=5s - [ -z "${MYSHELLCONFIG_GIT_CHECKOUT_TIMEOUT+x}" ] && export MYSHELLCONFIG_GIT_CHECKOUT_TIMEOUT=20s - [ -z "${MYSHELLCONFIG_GIT_SYNC+x}" ] && export MYSHELLCONFIG_GIT_SYNC=true - [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT=true - [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL=48 #intervall in hours - [ -z "${MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/" - [ -z "${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT+x}" ] && export MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h" + [ -z "${MSC_GIT_TIMEOUT+x}" ] && export MSC_GIT_TIMEOUT=5s + [ -z "${MSC_GIT_CHECKOUT_TIMEOUT+x}" ] && export MSC_GIT_CHECKOUT_TIMEOUT=20s + [ -z "${MSC_GIT_SYNC+x}" ] && export MSC_GIT_SYNC=true + [ -z "${MSC_GIT_SUBMODULES_UPDATE_DEFAULT+x}" ] && export MSC_GIT_SUBMODULES_UPDATE_DEFAULT=true + [ -z "${MSC_GIT_SUBMODULES_UPDATE_INTERVALL+x}" ] && export MSC_GIT_SUBMODULES_UPDATE_INTERVALL=48 #intervall in hours + [ -z "${MSC_GIT_SUBMODULES_SERVER_DEFAULT+x}" ] && export MSC_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/" + [ -z "${MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT+x}" ] && export MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h" # hardcoded git - export SGIT="git -C ${MYSHELLCONFIG_BASE}" + export SGIT="git -C ${MSC_BASE}" # git-repo-url for vim plugin # TODO: check how to use - export MYSHELLCONFIG_VIM_PLUGINS + export MSC_VIM_PLUGINS # Logging - [ -z "${MYSHELLCONFIG_LOGDIR+x}" ] && export MYSHELLCONFIG_LOGDIR="${HOME}/logs" - [ -z "${MYSHELLCONFIG_LOGFILE+x}" ] && export MYSHELLCONFIG_LOGFILE="${MYSHELLCONFIG_LOGDIR}/myshellconfig.log" - [ -z "${MYHSELLCONFIG_LOGLEVEL_DEFAULT+x}" ] && export MYHSELLCONFIG_LOGLEVEL_DEFAULT="INFO" - [ -z "${MYHSELLCONFIG_FILELOGLEVEL_DEFAULT+x}" ] && export MYHSELLCONFIG_FILELOGLEVEL_DEFAULT="DEBUG" - [ -z "${SCRIPT_LOG+x}" ] && export SCRIPT_LOG="${MYSHELLCONFIG_LOGFILE}" - [ -z "${LOGLEVEL_DEFAULT+x}" ] && export LOGLEVEL_DEFAULT="${MYHSELLCONFIG_LOGLEVEL_DEFAULT-INFO}" - [ -z "${FILELOGLEVEL_DEFAULT+x}" ] && export FILELOGLEVEL_DEFAULT="${MYHSELLCONFIG_FILELOGLEVEL_DEFAULT-INFO}" + [ -z "${MSC_LOGDIR+x}" ] && export MSC_LOGDIR="${HOME}/logs" + [ -z "${MSC_LOGFILE+x}" ] && export MSC_LOGFILE="${MSC_LOGDIR}/myshellconfig.log" + [ -z "${MSC_LOGLEVEL_DEFAULT+x}" ] && export MSC_LOGLEVEL_DEFAULT="INFO" + [ -z "${MSC_FILELOGLEVEL_DEFAULT+x}" ] && export MSC_FILELOGLEVEL_DEFAULT="DEBUG" + [ -z "${SCRIPT_LOG+x}" ] && export SCRIPT_LOG="${MSC_LOGFILE}" + [ -z "${LOGLEVEL_DEFAULT+x}" ] && export LOGLEVEL_DEFAULT="${MSC_LOGLEVEL_DEFAULT-INFO}" + [ -z "${FILELOGLEVEL_DEFAULT+x}" ] && export FILELOGLEVEL_DEFAULT="${MSC_FILELOGLEVEL_DEFAULT-INFO}" # Create necessary directories for logging - [ -n "${MYSHELLCONFIG_LOGDIR-x}" ] && mkdir -p "$MYSHELLCONFIG_LOGDIR" + [ -n "${MSC_LOGDIR-x}" ] && mkdir -p "$MSC_LOGDIR" # load logging functions - . ${MYSHELLCONFIG_BASE}/logging + . ${MSC_BASE}/logging # PKCS11_MODULE for etoken/smartcard authentification [ -n "$(whereis p11-kit-proxy.so|awk '{print $2}')" ] && PKCS11_MODULE=$(whereis p11-kit-proxy.so|awk '{print $2}') @@ -75,7 +75,7 @@ if [[ $- = *i* ]] ; then [ -z "${VISUAL+x}" ] && export VISUAL=vim [ -z "${EDITOR+x}" ] && export EDITOR=vim - cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" + cat << EOF >> "${MSC_LOGFILE}" ==8<=== start configure new shell ============== $(date) ===============8<== EOF @@ -85,8 +85,8 @@ EOF ckrepo () { # check if remote repo is reachable - if $MYSHELLCONFIG_GIT_SYNC; then - if $( timeout --foreground "${MYSHELLCONFIG_GIT_TIMEOUT}" $SGIT ls-remote >/dev/null 2>&1) ;then + if $MSC_GIT_SYNC; then + if $( timeout --foreground "${MSC_GIT_TIMEOUT}" $SGIT ls-remote >/dev/null 2>&1) ;then return 0 else return 1 @@ -99,15 +99,15 @@ EOF } sync_config () { - if $MYSHELLCONFIG_GIT_SYNC; then + if $MSC_GIT_SYNC; then local nok="" local gco="" if which git >/dev/null; then - loginfo -n "Sync config with ${MYSHELLCONFIG_GIT_SERVER}: " - # MYSHELLCONFIG_GITCHECKOUTSCRIPT_OPTIONS are options for bin/git-myshellconfig-checkout - ${MYSHELLCONFIG_BASE}/bin/git-myshellconfig-checkout ${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS:=${MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT}}|| nok="not " 1>>"${MYSHELLCONFIG_LOGFILE}" 2>&1 + loginfo -n "Sync config with ${MSC_GIT_SERVER}: " + # MSC_GITCHECKOUTSCRIPT_OPTIONS are options for bin/git-myshellconfig-checkout + ${MSC_BASE}/bin/git-myshellconfig-checkout ${MSC_GIT_CHECKOUTSCRIPT_OPTIONS:=${MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT}}|| nok="not " 1>>"${MSC_LOGFILE}" 2>&1 loginfo "$(printf '%s\n' "${nok}synced" )" - [ -z "$nok" ] && mkdir -pv "${MYSHELLCONFIG_LOGDIR}" + [ -z "$nok" ] && mkdir -pv "${MSC_LOGDIR}" else logwarn "git not installed, no configuration possible, please install git" >&2 @@ -133,8 +133,8 @@ EOF EXIT } - if [ -d "${MYSHELLCONFIG_BASE}/bin" ] ; then - pathmunge "${MYSHELLCONFIG_BASE}/bin" + if [ -d "${MSC_BASE}/bin" ] ; then + pathmunge "${MSC_BASE}/bin" export PATH fi @@ -161,19 +161,19 @@ EOF fi # source git-sync part of myshellconfig - . "${MYSHELLCONFIG_BASE}/myshell_git_sync" + . "${MSC_BASE}/myshell_git_sync" # source loading defaults part of myshellconfig - . "${MYSHELLCONFIG_BASE}/myshell_load_defaults" + . "${MSC_BASE}/myshell_load_defaults" # source loading workaround for x2go to forward local etoken to remote machine with forwardagent - . "${MYSHELLCONFIG_BASE}/myshell_load_x2go_tokenforward" + . "${MSC_BASE}/myshell_load_x2go_tokenforward" promptcommandmunge "_tmux_hook" promptcommandmunge "_umask_hook" which direnv >/dev/null && eval "$(direnv hook bash)" - cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" + cat << EOF >> "${MSC_LOGFILE}" ==8<=== finished configure new shell ================ $(date) ===============8<== EOF diff --git a/bin/git-myshellconfig-checkout b/bin/git-myshellconfig-checkout index 767b752..d75dd98 100755 --- a/bin/git-myshellconfig-checkout +++ b/bin/git-myshellconfig-checkout @@ -12,23 +12,23 @@ ################################################################################################# [ -z "${SGIT+x}" ] && SGIT=git - [ -z "${MYSHELLCONFIG_LOGDIR+x}" ] && export MYSHELLCONFIG_LOGDIR="${HOME}/logs" - [ -z "${MYSHELLCONFIG_LOGFILE+x}" ] && export MYSHELLCONFIG_LOGFILE="${MYSHELLCONFIG_LOGDIR}/myshellconfig.log" -#MYSHELLCONFIG_LOGDIR="./logs" -#MYSHELLCONFIG_LOGFILE="${MYSHELLCONFIG_LOGDIR}/git.log" -[ -d "${MYSHELLCONFIG_LOGDIR}" ] || mkdir -p "${MYSHELLCONFIG_LOGDIR}" -[ -z "${MYSHELLCONFIG_GIT_REMOTE_NAME+x}" ] && export MYSHELLCONFIG_GIT_REMOTE_NAME=origin -[ -z "${MYSHELLCONFIG_GIT_BRANCH+x}" ] && export MYSHELLCONFIG_GIT_BRANCH=master + [ -z "${MSC_LOGDIR+x}" ] && export MSC_LOGDIR="${HOME}/logs" + [ -z "${MSC_LOGFILE+x}" ] && export MSC_LOGFILE="${MSC_LOGDIR}/myshellconfig.log" +#MSC_LOGDIR="./logs" +#MSC_LOGFILE="${MSC_LOGDIR}/git.log" +[ -d "${MSC_LOGDIR}" ] || mkdir -p "${MSC_LOGDIR}" +[ -z "${MSC_GIT_REMOTE_NAME+x}" ] && export MSC_GIT_REMOTE_NAME=origin +[ -z "${MSC_GIT_BRANCH+x}" ] && export MSC_GIT_BRANCH=master lastupdatesubmodules () { - date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules + date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules } lastupdaterepo () { - date "+%s" > ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_repo + date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo } gitupdateend() { - cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" + cat << EOF >> "${MSC_LOGFILE}" +-----ENDE git update repo $(date) ---------------------------------+ @@ -36,7 +36,7 @@ EOF } ENTRY -cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" +cat << EOF >> "${MSC_LOGFILE}" +-----BEGINN git update repo $(date) -------------------------------+ EOF @@ -46,7 +46,7 @@ while [ $# -gt 0 ]; do case $1 in -h|--headless) # Headless repo local - PRE="${MYSHELLCONFIG_GIT_REMOTE_NAME}" + PRE="${MSC_GIT_REMOTE_NAME}" shift ;; -s|--submodules-update) @@ -60,43 +60,43 @@ while [ $# -gt 0 ]; do esac done # If TAG is set, checkout is always headless. -[ -z "${MYSHELLCONFIG_GIT_TAG:+x}" ] || { export MYSHELLCONFIG_GIT_BRANCH=${MYSHELLCONFIG_GIT_TAG}; export PRE=""; } +[ -z "${MSC_GIT_TAG:+x}" ] || { export MSC_GIT_BRANCH=${MSC_GIT_TAG}; export PRE=""; } # Output -#echo -n " remote: ${MYSHELLCONFIG_GIT_REMOTE_NAME}, branch: ${MYSHELLCONFIG_GIT_BRANCH}: " +#echo -n " remote: ${MSC_GIT_REMOTE_NAME}, branch: ${MSC_GIT_BRANCH}: " # Check for updates in submodules only if last check was INTERVALL hours in the past -if [ $(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \ - -lt $(date --date="${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \ - -a ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then +if [ $(cat ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \ + -lt $(date --date="${MSC_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \ + -a ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then [ -z "${dosrepoupdate+x}" ] && dorepoupdate="true" fi -if [ $(cat ${MYSHELLCONFIG_BASE%/}${MYSHELLCONFIG_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \ - -lt $(date --date="${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \ - -a ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then +if [ $(cat ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \ + -lt $(date --date="${MSC_GIT_SUBMODULES_UPDATE_INTERVALL} hours ago" "+%s") \ + -a ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then [ -z "${dosubmodupdate+x}" ] && dosubmodupdate="true" fi -#echo $SGIT fetch ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 1>&2 +#echo $SGIT fetch ${MSC_GIT_REMOTE_NAME} -p 1>&2 loginfo "fetch repo${dosubmodupdate:+ and submodules}" -$SGIT fetch ${dosubmodupdate:+--recurse-submodules} ${MYSHELLCONFIG_GIT_REMOTE_NAME} -p 2>>"${MYSHELLCONFIG_LOGFILE}"|| { logwarn fetch failed; gitupdateend; exit 1; } +$SGIT fetch ${dosubmodupdate:+--recurse-submodules} ${MSC_GIT_REMOTE_NAME} -p 2>>"${MSC_LOGFILE}"|| { logwarn fetch failed; gitupdateend; exit 1; } if ${dosubmodupdate:-false}; then lastupdatesubmodules fi -echo "Check for local changes:" >> "${MYSHELLCONFIG_LOGFILE}" -if $SGIT diff-index --ignore-submodules --exit-code HEAD -- >> "${MYSHELLCONFIG_LOGFILE}" ; then - cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" +echo "Check for local changes:" >> "${MSC_LOGFILE}" +if $SGIT diff-index --ignore-submodules --exit-code HEAD -- >> "${MSC_LOGFILE}" ; then + cat << EOF >> "${MSC_LOGFILE}" no changes in local repo - $SGIT checkout repo ${PRE}${PRE:+/}${MYSHELLCONFIG_GIT_BRANCH} + $SGIT checkout repo ${PRE}${PRE:+/}${MSC_GIT_BRANCH} EOF - $SGIT checkout ${PRE}${PRE:+/}${MYSHELLCONFIG_GIT_BRANCH} 1>>"${MYSHELLCONFIG_LOGFILE}" 2>>"${MYSHELLCONFIG_LOGFILE}"|| { gitupdateend; exit 2; } - $SGIT merge FETCH_HEAD 1>>"${MYSHELLCONFIG_LOGFILE}" 2>>"${MYSHELLCONFIG_LOGFILE}"|| { gitupdateend; exit 3; } + $SGIT checkout ${PRE}${PRE:+/}${MSC_GIT_BRANCH} 1>>"${MSC_LOGFILE}" 2>>"${MSC_LOGFILE}"|| { gitupdateend; exit 2; } + $SGIT merge FETCH_HEAD 1>>"${MSC_LOGFILE}" 2>>"${MSC_LOGFILE}"|| { gitupdateend; exit 3; } else logwarn -n " Lokale Änderungen festgestellt:" - echo " Siehe Logfile ${MYSHELLCONFIG_LOGFILE}" >&2 - cat << EOF >> "${MYSHELLCONFIG_LOGFILE}" + echo " Siehe Logfile ${MSC_LOGFILE}" >&2 + cat << EOF >> "${MSC_LOGFILE}" um die Änderung zurückzusetzen bitte $SGIT checkout \$FILENAME @@ -119,7 +119,7 @@ fi loginfo "repo${dosubmodupdate:+ and submodules} synced" -#if ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}}; then +#if ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}}; then if ${dosubmodupdate:-false}; then loginfo "update and commit submodules" logdebug "$($SGIT submodule update --remote)" @@ -129,7 +129,7 @@ loginfo "repo${dosubmodupdate:+ and submodules} synced" fi #else # loginfo -n ", submodules not synced" -# logdebug "Do not update submodules. It's denied by environment MYSHELLCONFIG_GIT_UPDATE_SUBMODULES: ${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE-${MYSHELLCONFIG_GIT_SUBMODULES_UPDATE_DEFAULT-true}}" +# logdebug "Do not update submodules. It's denied by environment MSC_GIT_UPDATE_SUBMODULES: ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}}" #fi EXIT diff --git a/functions.sh b/functions.sh index 9a2123e..6c1d9e5 100755 --- a/functions.sh +++ b/functions.sh @@ -71,22 +71,22 @@ sudo() { } create_symlinks() { - #echo MYSHELLCONFIG_BASE: $MYSHELLCONFIG_BASE -# MYSHELLCONFIG_BASEDIR="$1" -# DIR="$(basename ${MYSHELLCONFIG_BASEDIR})" -# cd "${MYSHELLCONFIG_BASEDIR}" - cd ${MYSHELLCONFIG_BASE} - #echo "DIR MYSHELLCONFIG_BASEDIR $DIR $MYSHELLCONFIG_BASEDIR" + #echo MSC_BASE: $MSC_BASE +# MSC_BASEDIR="$1" +# DIR="$(basename ${MSC_BASEDIR})" +# cd "${MSC_BASEDIR}" + cd ${MSC_BASE} + #echo "DIR MSC_BASEDIR $DIR $MSC_BASEDIR" git config credential.helper 'cache --timeout=300' #Anlegen von Symlinks rm -rf ~/.vimrc ~/.vim ~/bashrc_add ~/.gitconfig ~/.tmux.conf ~/.tmux - ln -sf "${MYSHELLCONFIG_BASE}/vimrc" ~/.vimrc - ln -sf "${MYSHELLCONFIG_BASE}/vim" ~/.vim - ln -sf "${MYSHELLCONFIG_BASE}/.gitconfig" ~/.gitconfig - ln -sf "${MYSHELLCONFIG_BASE}/.gitignore_global" ~/.gitignore_global - #ln -sf "${MYSHELLCONFIG_BASE}/bashrc_add" ~/bashrc_add - ln -sf "${MYSHELLCONFIG_BASE}/tmux" ~/.tmux - ln -sf "${MYSHELLCONFIG_BASE}/tmux/tmux.conf" ~/.tmux.conf + ln -sf "${MSC_BASE}/vimrc" ~/.vimrc + ln -sf "${MSC_BASE}/vim" ~/.vim + ln -sf "${MSC_BASE}/.gitconfig" ~/.gitconfig + ln -sf "${MSC_BASE}/.gitignore_global" ~/.gitignore_global + #ln -sf "${MSC_BASE}/bashrc_add" ~/bashrc_add + ln -sf "${MSC_BASE}/tmux" ~/.tmux + ln -sf "${MSC_BASE}/tmux/tmux.conf" ~/.tmux.conf # Configure to use githooks in .githooks, not in standardlocation .git/hooks $SGIT config core.hooksPath .githooks @@ -309,15 +309,15 @@ mkcd () { sshmyshellconfig() { ENTRY - [ -z "${MYSHELLCONFIG_SUBPATH+x}" ] && MYSHELLCONFIG_SUBPATH=".local/myshellconfig" - [ -z "${MYSHELLCONFIG_BASE+x}" ] && MYSHELLCONFIG_BASE="${HOME}/${MYSHELLCONFIG_SUBPATH}" - MYSHELLCONFIG_BASE_PARENT="$(dirname $MYSHELLCONFIG_BASE)" + [ -z "${MSC_SUBPATH+x}" ] && MSC_SUBPATH=".local/myshellconfig" + [ -z "${MSC_BASE+x}" ] && MSC_BASE="${HOME}/${MSC_SUBPATH}" + MSC_BASE_PARENT="$(dirname $MSC_BASE)" if [ $1 == "localhost" ]; then CMD="" else local SSH="/usr/bin/ssh" - [ -e ${MYSHELLCONFIG_BASE}/bashrc_add ] && $SSH -T -o VisualHostKey=no $@ "mkdir -p ~/\$MYSHELLCONFIG_BASE_PARENT; cat > ~/bashrc_add" < "${MYSHELLCONFIG_BASE}/bashrc_add" + [ -e ${MSC_BASE}/bashrc_add ] && $SSH -T -o VisualHostKey=no $@ "mkdir -p ~/\$MSC_BASE_PARENT; cat > ~/bashrc_add" < "${MSC_BASE}/bashrc_add" local CMD="$SSH -T $@" fi $CMD /bin/bash << EOF @@ -327,13 +327,13 @@ sshmyshellconfig() { sed -i -e '/^\[ -f bashrc_add \] /d' ~/.bashrc sed -i -e '/#MYSHELLCONFIG-start/,/#MYSHELLCONFIG-end/d' ~/.bashrc echo - printf "%s\n" "#MYSHELLCONFIG-start" "[ -f \"\${HOME}/${MYSHELLCONFIG_SUBPATH}/bashrc_add\" ] && . \"\${HOME}/${MYSHELLCONFIG_SUBPATH}/bashrc_add\"" "#MYSHELLCONFIG-end"| tee -a ~/.bashrc - #printf "%s\n" "#MYSHELLCONFIG-start" "if [ -e \${HOME}/${MYSHELLCONFIG_SUBPATH}/bashrc_add ]; then" " . \${HOME}/${MYSHELLCONFIG_SUBPATH}/bashrc_add;" "else" " if [ -f ~/bashrc_add ] ;then" " . ~/bashrc_add;" " fi;" "fi" "#MYSHELLCONFIG-end" |tee -a ~/.bashrc + printf "%s\n" "#MYSHELLCONFIG-start" "[ -f \"\${HOME}/${MSC_SUBPATH}/bashrc_add\" ] && . \"\${HOME}/${MSC_SUBPATH}/bashrc_add\"" "#MYSHELLCONFIG-end"| tee -a ~/.bashrc + #printf "%s\n" "#MYSHELLCONFIG-start" "if [ -e \${HOME}/${MSC_SUBPATH}/bashrc_add ]; then" " . \${HOME}/${MSC_SUBPATH}/bashrc_add;" "else" " if [ -f ~/bashrc_add ] ;then" " . ~/bashrc_add;" " fi;" "fi" "#MYSHELLCONFIG-end" |tee -a ~/.bashrc echo loginfo cleanup from old config rm -rf ~/server-config && echo rm -rf ~/server-config loginfo git clone - git clone --recurse-submodules $MYSHELLCONFIG_GIT_REMOTE \${HOME}/${MYSHELLCONFIG_SUBPATH} + git clone --recurse-submodules $MSC_GIT_REMOTE \${HOME}/${MSC_SUBPATH} EOF EXIT @@ -349,7 +349,7 @@ sshs() { local f local TMPBASHCONFIG=$(mktemp -p ${XDG_RUNTIME_DIR} -t bashrc.XXXXXXXX --suffix=.conf) - local FILELIST=( "${MYSHELLCONFIG_BASE}/functions.sh" "${MYSHELLCONFIG_BASE}/logging" "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" $(getbashrcfile) ~/.aliases "${MYSHELLCONFIG_BASE}/aliases" "${MYSHELLCONFIG_BASE}/PS1" "${MYSHELLCONFIG_BASE}/bash_completion.d/*" ) + local FILELIST=( "${MSC_BASE}/functions.sh" "${MSC_BASE}/logging" "${MSC_BASE}/myshell_load_fortmpconfig" $(getbashrcfile) ~/.aliases "${MSC_BASE}/aliases" "${MSC_BASE}/PS1" "${MSC_BASE}/bash_completion.d/*" ) local SSH_OPTS="-o VisualHostKey=no -o ControlMaster=auto -o ControlPersist=15s -o ControlPath=~/.ssh/ssh-%r@%h:%p" # Read /etc/bashrc or /etc/bash.bashrc (depending on distribution) and /etc/profile.d/*.sh first @@ -403,7 +403,7 @@ loginfo "This bash runs with temporary config from \$BASHRC" EOF ssh -T ${SSH_OPTS} $@ "cat > ${REMOTETMPBASHCONFIG}" < "${TMPBASHCONFIG}" - ssh -T ${SSH_OPTS} $@ "cat > ${REMOTETMPVIMCONFIG}" < "${MYSHELLCONFIG_BASE}/vimrc" + ssh -T ${SSH_OPTS} $@ "cat > ${REMOTETMPVIMCONFIG}" < "${MSC_BASE}/vimrc" RCMD=" trap \"rm -f ${REMOTETMPBASHCONFIG} ${REMOTETMPVIMCONFIG}\" EXIT " ; ssh -t ${SSH_OPTS} $@ "$RCMD; SSHS=true bash -c \"function bash () { /bin/bash --rcfile ${REMOTETMPBASHCONFIG} -i ; } ; export -f bash; exec bash --rcfile ${REMOTETMPBASHCONFIG}\"" @@ -421,7 +421,7 @@ EOF } -VIMRC="${MYSHELLCONFIG_BASE}/vimrc" +VIMRC="${MSC_BASE}/vimrc" svi () { ENTRY @@ -450,14 +450,14 @@ svi () { vim-repair-vundle () { ENTRY - if [ -z ${MYSHELLCONFIG_BASE+x} ]; then - echo "MYSHELLCONFIG_BASE nicht gesetzt. Eventuell noch einmal ausloggen und wieder einloggen" + if [ -z ${MSC_BASE+x} ]; then + echo "MSC_BASE nicht gesetzt. Eventuell noch einmal ausloggen und wieder einloggen" else - cd $MYSHELLCONFIG_BASE + cd $MSC_BASE cd vim/bundle rm -rf Vundle.vim - echo git clone "${MYSHELLCONFIG_GIT_SUBMODULES_SERVER-$MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT}gmarik/Vundle.vim.git" - git clone "${MYSHELLCONFIG_GIT_SUBMODULES_SERVER-$MYSHELLCONFIG_GIT_SUBMODULES_SERVER_DEFAULT}gmarik/Vundle.vim.git" + echo git clone "${MSC_GIT_SUBMODULES_SERVER-$MSC_GIT_SUBMODULES_SERVER_DEFAULT}gmarik/Vundle.vim.git" + git clone "${MSC_GIT_SUBMODULES_SERVER-$MSC_GIT_SUBMODULES_SERVER_DEFAULT}gmarik/Vundle.vim.git" cd ~- fi EXIT @@ -644,7 +644,7 @@ changebeep() { turnoffconfigsync() { ENTRY - local line='MYSHELLCONFIG_GIT_SYNC=' + local line='MSC_GIT_SYNC=' local file=~/.bashrc if [ -e "${file}" ] ; then sed -i -e "/${line}/d" "${file}" @@ -655,7 +655,7 @@ turnoffconfigsync() { turnonconfigsync() { ENTRY - local line='MYSHELLCONFIG_GIT_SYNC=' + local line='MSC_GIT_SYNC=' local file=~/.bashrc if [ -e "${file}" ] ; then sed -i -e "/${line}/d" "${file}" diff --git a/myshell_git_sync b/myshell_git_sync index 0f14a64..00bdbd4 100644 --- a/myshell_git_sync +++ b/myshell_git_sync @@ -8,78 +8,78 @@ if ! $SSHS; then ###################################### - MYSHELLCONFIG_GIT_PROTOCOL_GIT="git://" - MYSHELLCONFIG_GIT_PROTOCOL_HTTP="http://" - MYSHELLCONFIG_GIT_PROTOCOL_SSH="git@" - MYSHELLCONFIG_GIT_PROTOCOL_FILE="" - [ -z "${MYSHELLCONFIG_GIT_SERVER+x}" ] && MYSHELLCONFIG_GIT_SERVER="git.schuerz.at" - [ -z "${MYSHELLCONFIG_GIT_REPO_NAME+x}" ] && MYSHELLCONFIG_GIT_REPO_NAME="$(basename $MYSHELLCONFIG_BASE).git" - [ -z "${MYSHELLCONFIG_GIT_REPO_PATH_HTTP+x}" ] && MYSHELLCONFIG_GIT_REPO_PATH_HTTP="/public/" - [ -z "${MYSHELLCONFIG_GIT_REPO_PATH_SSH+x}" ] && MYSHELLCONFIG_GIT_REPO_PATH_SSH=":public/" - [ -z "${MYSHELLCONFIG_GIT_REPO_PATH_GIT+x}" ] && MYSHELLCONFIG_GIT_REPO_PATH_GIT="/public/" -# [ -z "${MYSHELLCONFIG_GIT_REPO_PATH_FILE+x}" ] && MYSHELLCONFIG_GIT_REPO_PATH_FILE="/media/$USER/gitstick/" - [ -z "${MYSHELLCONFIG_GIT_REPO_PATH_FILE+x}" ] && MYSHELLCONFIG_GIT_REPO_PATH_FILE="/srv/git/" + MSC_GIT_PROTOCOL_GIT="git://" + MSC_GIT_PROTOCOL_HTTP="http://" + MSC_GIT_PROTOCOL_SSH="git@" + MSC_GIT_PROTOCOL_FILE="" + [ -z "${MSC_GIT_SERVER+x}" ] && MSC_GIT_SERVER="git.schuerz.at" + [ -z "${MSC_GIT_REPO_NAME+x}" ] && MSC_GIT_REPO_NAME="$(basename $MSC_BASE).git" + [ -z "${MSC_GIT_REPO_PATH_HTTP+x}" ] && MSC_GIT_REPO_PATH_HTTP="/public/" + [ -z "${MSC_GIT_REPO_PATH_SSH+x}" ] && MSC_GIT_REPO_PATH_SSH=":public/" + [ -z "${MSC_GIT_REPO_PATH_GIT+x}" ] && MSC_GIT_REPO_PATH_GIT="/public/" +# [ -z "${MSC_GIT_REPO_PATH_FILE+x}" ] && MSC_GIT_REPO_PATH_FILE="/media/$USER/gitstick/" + [ -z "${MSC_GIT_REPO_PATH_FILE+x}" ] && MSC_GIT_REPO_PATH_FILE="/srv/git/" - MYSHELLCONFIG_GIT_REMOTE_PUBLIC_GIT="${MYSHELLCONFIG_GIT_PROTOCOL_GIT}${MYSHELLCONFIG_GIT_SERVER}${MYSHELLCONFIG_GIT_REPO_PATH_GIT}" - MYSHELLCONFIG_GIT_REMOTE_PUBLIC_SSH="${MYSHELLCONFIG_GIT_PROTOCOL_SSH}${MYSHELLCONFIG_GIT_SERVER}${MYSHELLCONFIG_GIT_REPO_PATH_SSH}" - MYSHELLCONFIG_GIT_REMOTE_PUBLIC_HTTP="${MYSHELLCONFIG_GIT_PROTOCOL_HTTP}${MYSHELLCONFIG_GIT_SERVER}${MYSHELLCONFIG_GIT_REPO_PATH_HTTP}" - MYSHELLCONFIG_GIT_REMOTE_PUBLIC_FILE="${MYSHELLCONFIG_GIT_PROTOCOL_FILE}${MYSHELLCONFIG_GIT_REPO_PATH_FILE}" - MYSHELLCONFIG_GIT_REMOTE_PUBLIC_DEFAULT="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_GIT}" + MSC_GIT_REMOTE_PUBLIC_GIT="${MSC_GIT_PROTOCOL_GIT}${MSC_GIT_SERVER}${MSC_GIT_REPO_PATH_GIT}" + MSC_GIT_REMOTE_PUBLIC_SSH="${MSC_GIT_PROTOCOL_SSH}${MSC_GIT_SERVER}${MSC_GIT_REPO_PATH_SSH}" + MSC_GIT_REMOTE_PUBLIC_HTTP="${MSC_GIT_PROTOCOL_HTTP}${MSC_GIT_SERVER}${MSC_GIT_REPO_PATH_HTTP}" + MSC_GIT_REMOTE_PUBLIC_FILE="${MSC_GIT_PROTOCOL_FILE}${MSC_GIT_REPO_PATH_FILE}" + MSC_GIT_REMOTE_PUBLIC_DEFAULT="${MSC_GIT_REMOTE_PUBLIC_GIT}" - MYSHELLCONFIG_GIT_REMOTE_DEFAULT="${MYSHELLCONFIG_GIT_PROTOCOL_GIT}${MYSHELLCONFIG_GIT_SERVER}${MYSHELLCONFIG_GIT_REPO_PATH_GIT}" + MSC_GIT_REMOTE_DEFAULT="${MSC_GIT_PROTOCOL_GIT}${MSC_GIT_SERVER}${MSC_GIT_REPO_PATH_GIT}" - # If MYSHELLCONFIG_GIT_REMOTE is set in ~/.bashrc before sourcing this file, take value from ~/.bashrc - # If set MYSHELLCONFIG_GIT_REMOTE_PROTOCOL in ~/.bashrc before sourcing this file, you cange choose one of the above + # If MSC_GIT_REMOTE is set in ~/.bashrc before sourcing this file, take value from ~/.bashrc + # If set MSC_GIT_REMOTE_PROTOCOL in ~/.bashrc before sourcing this file, you cange choose one of the above # defined values for a specific host - if [ -z ${MYSHELLCONFIG_GIT_REMOTE+x} ]; then - case $MYSHELLCONFIG_GIT_REMOTE_PROTOCOL in + if [ -z ${MSC_GIT_REMOTE+x} ]; then + case $MSC_GIT_REMOTE_PROTOCOL in git) - MYSHELLCONFIG_GIT_REMOTE_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_GIT}" + MSC_GIT_REMOTE_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_GIT}" ;; ssh) - MYSHELLCONFIG_GIT_REMOTE_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_SSH}" + MSC_GIT_REMOTE_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_SSH}" ;; http) - MYSHELLCONFIG_GIT_REMOTE_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_HTTP}" + MSC_GIT_REMOTE_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_HTTP}" ;; file) - MYSHELLCONFIG_GIT_REMOTE_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_FILE}" - MYSHELLCONFIG_GIT_SERVER="${MYSHELLCONFIG_GIT_REPO_PATH_FILE}" + MSC_GIT_REMOTE_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_FILE}" + MSC_GIT_SERVER="${MSC_GIT_REPO_PATH_FILE}" ;; *) - MYSHELLCONFIG_GIT_REMOTE_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_DEFAULT}" + MSC_GIT_REMOTE_PUBLIC="${MSC_GIT_REMOTE_DEFAULT}" ;; esac - MYSHELLCONFIG_GIT_REMOTE="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC}${MYSHELLCONFIG_GIT_REPO_NAME}" + MSC_GIT_REMOTE="${MSC_GIT_REMOTE_PUBLIC}${MSC_GIT_REPO_NAME}" fi - if [ -z ${MYSHELLCONFIG_GIT_REMOTE_PUSH+x} ]; then - case $MYSHELLCONFIG_GIT_REMOTE_PUSH_PROTOCOL in + if [ -z ${MSC_GIT_REMOTE_PUSH+x} ]; then + case $MSC_GIT_REMOTE_PUSH_PROTOCOL in git) - MYSHELLCONFIG_GIT_REMOTE_PUSH_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_GIT}" + MSC_GIT_REMOTE_PUSH_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_GIT}" ;; ssh) - MYSHELLCONFIG_GIT_REMOTE_PUSH_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_SSH}" + MSC_GIT_REMOTE_PUSH_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_SSH}" ;; http) - MYSHELLCONFIG_GIT_REMOTE_PUSH_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_HTTP}" + MSC_GIT_REMOTE_PUSH_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_HTTP}" ;; file) - MYSHELLCONFIG_GIT_REMOTE_PUSH_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_FILE}" + MSC_GIT_REMOTE_PUSH_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_FILE}" ;; *) - MYSHELLCONFIG_GIT_REMOTE_PUSH_PUBLIC="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_DEFAULT}" + MSC_GIT_REMOTE_PUSH_PUBLIC="${MSC_GIT_REMOTE_PUBLIC_DEFAULT}" ;; esac - MYSHELLCONFIG_GIT_REMOTE_PUSH=${MYSHELLCONFIG_GIT_REMOTE_PUSH_PUBLIC}${MYSHELLCONFIG_GIT_REPO_NAME} + MSC_GIT_REMOTE_PUSH=${MSC_GIT_REMOTE_PUSH_PUBLIC}${MSC_GIT_REPO_NAME} fi - [ -z "${MYSHELLCONFIG_GIT_REMOTE_NAME+x}" ] && export MYSHELLCONFIG_GIT_REMOTE_NAME=origin - [ -z "${MYSHELLCONFIG_GIT_BRANCH+x}" ] && export MYSHELLCONFIG_GIT_BRANCH=master + [ -z "${MSC_GIT_REMOTE_NAME+x}" ] && export MSC_GIT_REMOTE_NAME=origin + [ -z "${MSC_GIT_BRANCH+x}" ] && export MSC_GIT_BRANCH=master # If TAG is set, checkout is always headless. - [ -z "${MYSHELLCONFIG_GIT_TAG:+x}" ] || { export MYSHELLCONFIG_GIT_BRANCH=${MYSHELLCONFIG_GIT_TAG}; export MYSHELLCONFIG_GIT_CHECKOUTSCRIPT_OPTIONS="-h"; } + [ -z "${MSC_GIT_TAG:+x}" ] || { export MSC_GIT_BRANCH=${MSC_GIT_TAG}; export MSC_GIT_CHECKOUTSCRIPT_OPTIONS="-h"; } #GIT_SSH_PATH="/srv/repos" @@ -88,10 +88,10 @@ if ! $SSHS; then #*term*|*linux*) *term*) - if [ -d "${MYSHELLCONFIG_BASE}" -a $($SGIT status 1>/dev/null 2>&1; echo $?) -eq 0 ]; then - [ -d "${MYSHELLCONFIG_LOGDIR}" ] || mkdir -p "${MYSHELLCONFIG_LOGDIR}" + if [ -d "${MSC_BASE}" -a $($SGIT status 1>/dev/null 2>&1; echo $?) -eq 0 ]; then + [ -d "${MSC_LOGDIR}" ] || mkdir -p "${MSC_LOGDIR}" if ! $SGIT rev-parse --git-dir > /dev/null 2>&1 ; then - loginfo "Init ${MYSHELLCONFIG_BASE} as git-repo" >&2 + loginfo "Init ${MSC_BASE} as git-repo" >&2 $SGIT init fi @@ -100,35 +100,35 @@ if ! $SSHS; then $SGIT config user.name "${FULLNAME}" # set upstream only if not detached - [ $($SGIT rev-parse --abbrev-ref HEAD) != "HEAD" ] && $SGIT branch --set-upstream-to=${MYSHELLCONFIG_GIT_REMOTE_NAME}/$($SGIT rev-parse --abbrev-ref HEAD) + [ $($SGIT rev-parse --abbrev-ref HEAD) != "HEAD" ] && $SGIT branch --set-upstream-to=${MSC_GIT_REMOTE_NAME}/$($SGIT rev-parse --abbrev-ref HEAD) # sync repo with origin if git is reachable if ckrepo ; then loginfo "git checkout" >&2 sync_config - . ${MYSHELLCONFIG_BASE}/functions.sh - create_symlinks "$MYSHELLCONFIG_BASE" + . ${MSC_BASE}/functions.sh + create_symlinks "$MSC_BASE" else - loginfo "${MYSHELLCONFIG_GIT_SERVER}" not reachable >&2; + loginfo "${MSC_GIT_SERVER}" not reachable >&2; loginfo "profile not syncing" >&2; fi else - loginfo "Clone ${MYSHELLCONFIG_GIT_REMOTE} and configure git" >&2 + loginfo "Clone ${MSC_GIT_REMOTE} and configure git" >&2 - if $( timeout --foreground "${MYSHELLCONFIG_GIT_CHECKOUT_TIMEOUT}" \ - git -C ${HOME} clone --recurse-submodules "${MYSHELLCONFIG_GIT_REMOTE}" "${MYSHELLCONFIG_BASE}" ); then + if $( timeout --foreground "${MSC_GIT_CHECKOUT_TIMEOUT}" \ + git -C ${HOME} clone --recurse-submodules "${MSC_GIT_REMOTE}" "${MSC_BASE}" ); then : else - MYSHELLCONFIG_GIT_REMOTE="${MYSHELLCONFIG_GIT_REMOTE_PUBLIC_HTTP}${MYSHELLCONFIG_GIT_REPO_NAME}" - loginfo "Clone ${MYSHELLCONFIG_GIT_REMOTE} (http, because other protocol is not reachable) and configure git" >&2 - timeout --foreground "${MYSHELLCONFIG_GIT_CHECKOUT_TIMEOUT}" \ - git -C ${HOME} clone --recurse-submodules "${MYSHELLCONFIG_GIT_REMOTE}" "${MYSHELLCONFIG_BASE}" || return 1 2>/dev/null || exit 1 + MSC_GIT_REMOTE="${MSC_GIT_REMOTE_PUBLIC_HTTP}${MSC_GIT_REPO_NAME}" + loginfo "Clone ${MSC_GIT_REMOTE} (http, because other protocol is not reachable) and configure git" >&2 + timeout --foreground "${MSC_GIT_CHECKOUT_TIMEOUT}" \ + git -C ${HOME} clone --recurse-submodules "${MSC_GIT_REMOTE}" "${MSC_BASE}" || return 1 2>/dev/null || exit 1 fi - [ -d "${MYSHELLCONFIG_BASE}" ] && { loginfo create ${MYSHELLCONFIG_LOGDIR} >&2; mkdir -p "${MYSHELLCONFIG_LOGDIR}"; } + [ -d "${MSC_BASE}" ] && { loginfo create ${MSC_LOGDIR} >&2; mkdir -p "${MSC_LOGDIR}"; } $SGIT config user.email "${USERNAME}" $SGIT config user.name "${FULLNAME}" @@ -139,16 +139,16 @@ if ! $SSHS; then loginfo "sync config" >&2 sync_config - . ${MYSHELLCONFIG_BASE}/functions.sh + . ${MSC_BASE}/functions.sh loginfo "config synced, functions.sh sourced" >&2 - create_symlinks "$MYSHELLCONFIG_BASE" + create_symlinks "$MSC_BASE" # Install vim Plugins # echo "Run Vim, and in Vim run :PluginInstall to install all Plugins" # not necessary any more. Vim plugins are updated through git submodules #vim -c "PluginInstall" -c ":qa!" fi - [ -z ${MYSHELLCONFIG_GIT_REMOTE_PUSH+x} ] || $SGIT remote set-url --push ${MYSHELLCONFIG_GIT_REMOTE_NAME} "${MYSHELLCONFIG_GIT_REMOTE_PUSH}" + [ -z ${MSC_GIT_REMOTE_PUSH+x} ] || $SGIT remote set-url --push ${MSC_GIT_REMOTE_NAME} "${MSC_GIT_REMOTE_PUSH}" ;; *screen*) loginfo "I'm in sceen/tmux now - no profily syncing" >&2 diff --git a/myshell_load_defaults b/myshell_load_defaults index 9add397..88b45b6 100644 --- a/myshell_load_defaults +++ b/myshell_load_defaults @@ -5,10 +5,10 @@ case $(tty) in /dev/tty[0-9]*) case $(id -u) in 0) - TMOUT=${MYSHELLCONFIG_ROOT_TMOUT:-500} + TMOUT=${MSC_ROOT_TMOUT:-500} ;; *) - TMOUT=${MYSHELLCONFIG_USER_TMOUT:-1000} + TMOUT=${MSC_USER_TMOUT:-1000} ;; esac loginfo "Run in TTY -> set autologout \$TMOUT=$TMOUT" >&2 @@ -21,8 +21,8 @@ esac # Load default values, functions, aliases for myshellconfig if ! $SSHS; then - if [ -e ${MYSHELLCONFIG_BASE}/functions.sh ]; then - . ${MYSHELLCONFIG_BASE}/functions.sh + if [ -e ${MSC_BASE}/functions.sh ]; then + . ${MSC_BASE}/functions.sh else return fi @@ -38,29 +38,29 @@ if ! $SSHS; then # User specific aliases and function - if [ -d "${MYSHELLCONFIG_BASE}/bin" ] ; then - pathmunge "${MYSHELLCONFIG_BASE}/bin" + if [ -d "${MSC_BASE}/bin" ] ; then + pathmunge "${MSC_BASE}/bin" export PATH fi - if [ -d "${MYSHELLCONFIG_BASE}/git-credential-pass" ] ; then - pathmunge "${MYSHELLCONFIG_BASE}/git-credential-pass" + if [ -d "${MSC_BASE}/git-credential-pass" ] ; then + pathmunge "${MSC_BASE}/git-credential-pass" export PATH fi - if [ -f "${MYSHELLCONFIG_BASE}/aliases" ]; then - . "${MYSHELLCONFIG_BASE}/aliases" + if [ -f "${MSC_BASE}/aliases" ]; then + . "${MSC_BASE}/aliases" fi - if [ -f "${MYSHELLCONFIG_BASE}/PS1" ]; then - . "${MYSHELLCONFIG_BASE}/PS1" + if [ -f "${MSC_BASE}/PS1" ]; then + . "${MSC_BASE}/PS1" fi # Fehler anfang #set -x - if [ -e "${MYSHELLCONFIG_BASH_COMPLETION}" ]; then - for i in $( ls "${MYSHELLCONFIG_BASH_COMPLETION}" ); do - . "${MYSHELLCONFIG_BASH_COMPLETION}/${i}" + if [ -e "${MSC_BASH_COMPLETION}" ]; then + for i in $( ls "${MSC_BASH_COMPLETION}" ); do + . "${MSC_BASH_COMPLETION}/${i}" done unset i fi @@ -68,8 +68,8 @@ if ! $SSHS; then #set +x # Fehler ende - if [ -f "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" ]; then - . "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" + if [ -f "${MSC_BASE}/myshell_load_fortmpconfig" ]; then + . "${MSC_BASE}/myshell_load_fortmpconfig" fi @@ -116,7 +116,7 @@ export HISTIGNORE="ls:l:cd:exit:pwd:date:mencfs:" export HISTTIMEFORMAT='%F %T ' export HISTSIZE=999999 -loginfo "bashrc_add sourced" 2>&1 |tee -a ${MYSHELLCONFIG_LOGFILE} >&2 +loginfo "bashrc_add sourced" 2>&1 |tee -a ${MSC_LOGFILE} >&2 #echo "bashrc_add sourced" >&2 # Export several functions for being usable in subshells diff --git a/vimrc b/vimrc index 1c78f6b..f0a5a1a 100644 --- a/vimrc +++ b/vimrc @@ -10,8 +10,8 @@ set nocompatible " required filetype off " required -"if !empty($MYSHELLCONFIG_VIM_PLUGINS) -" let pluginrepopath=$MYSHELLCONFIG_VIM_PLUGINS . '/' +"if !empty($MSC_VIM_PLUGINS) +" let pluginrepopath=$MSC_VIM_PLUGINS . '/' " let pluginextension='.git' "else " let pluginrepopath='' @@ -365,7 +365,7 @@ au BufRead,BufNewFile *.py,*.pyw,*.c,*.h match BadWhitespace /\s\+$/ " yaml syntax " https://www.vim.org/scripts/script.php?script_id=739 " wget https://www.vim.org/scripts/download_script.php?src_id=2249 -O ~/.vim/yaml.vim -"au BufNewFile,BufRead *.yaml,*.yml so $MYSHELLCONFIG_BASE/.vim/yaml.vim +"au BufNewFile,BufRead *.yaml,*.yml so $MSC_BASE/.vim/yaml.vim autocmd BufRead,BufNewFile /etc/exim* set filetype=exim autocmd BufRead,BufNewFile *.yaml,*.yml set filetype=yaml From 65b282cdfbf643224ebbaa2b394055e96b904cc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 09:41:23 +0100 Subject: [PATCH 45/54] defaults in extra config-file --- bashrc_add | 4 ++++ defaults.conf | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 defaults.conf diff --git a/bashrc_add b/bashrc_add index 21397b0..361ee24 100755 --- a/bashrc_add +++ b/bashrc_add @@ -23,6 +23,10 @@ if [[ $- = *i* ]] ; then # Base Path [ -z "${MSC_SUBPATH+x}" ] && export MSC_SUBPATH=".local/myshellconfig" [ -z "${MSC_BASE+x}" ] && export MSC_BASE="${HOME}/${MSC_SUBPATH}" + + # DEFAULTS + [ -e ${MSC_BASE}/defaults.conf ] && . ${MSC_BASE}/defaults.conf + # hardcoded paths export MSC_BASE_PARENT="$(dirname $MSC_BASE)" export MSC_BASH_COMPLETION="${HOME}/${MSC_SUBPATH}/bash_completion.d" diff --git a/defaults.conf b/defaults.conf new file mode 100644 index 0000000..222f807 --- /dev/null +++ b/defaults.conf @@ -0,0 +1,4 @@ +MSC_GIT_SUBMODULES_UPDATE_DEFAULT=true +MSC_GIT_SUBMODULES_UPDATE_INTERVALL=48 #intervall in hours +MSC_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/" +MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h" From 770650432b67d73ab3756847fb90215059d25ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Thu, 10 Dec 2020 10:35:54 +0100 Subject: [PATCH 46/54] defaults in config-file --- bashrc_add | 7 ++++--- defaults.conf | 12 ++++++++---- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/bashrc_add b/bashrc_add index 361ee24..30f262f 100755 --- a/bashrc_add +++ b/bashrc_add @@ -24,13 +24,14 @@ if [[ $- = *i* ]] ; then [ -z "${MSC_SUBPATH+x}" ] && export MSC_SUBPATH=".local/myshellconfig" [ -z "${MSC_BASE+x}" ] && export MSC_BASE="${HOME}/${MSC_SUBPATH}" - # DEFAULTS - [ -e ${MSC_BASE}/defaults.conf ] && . ${MSC_BASE}/defaults.conf - # hardcoded paths export MSC_BASE_PARENT="$(dirname $MSC_BASE)" export MSC_BASH_COMPLETION="${HOME}/${MSC_SUBPATH}/bash_completion.d" + # Load DEFAULTS + [ -e ${MSC_BASE}/defaults.conf ] && . ${MSC_BASE}/defaults.conf + + # Userdata [ -z "${USERNAME+x}" ] && export USERNAME="$USER" [ -z "${USEREMAIL+x}" ] && export USEREMAIL="$USER@$(domainname -d)" diff --git a/defaults.conf b/defaults.conf index 222f807..91d5cc7 100644 --- a/defaults.conf +++ b/defaults.conf @@ -1,4 +1,8 @@ -MSC_GIT_SUBMODULES_UPDATE_DEFAULT=true -MSC_GIT_SUBMODULES_UPDATE_INTERVALL=48 #intervall in hours -MSC_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/" -MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h" +export MSC_GIT_SUBMODULES_UPDATE_DEFAULT=true +export MSC_GIT_SUBMODULES_UPDATE_INTERVALL=48 #intervall in hours +export MSC_GIT_SUBMODULES_SERVER_DEFAULT="git://git.schuerz.at/github.com/" +export MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h" +export MSC_LOGLEVEL_DEFAULT="INFO" +export MSC_FILELOGLEVEL_DEFAULT="DEBUG" +export LOGLEVEL_DEFAULT="${MSC_LOGLEVEL_DEFAULT-INFO}" +export FILELOGLEVEL_DEFAULT="${MSC_FILELOGLEVEL_DEFAULT-INFO}" From 23a64fb2eed1380eba7cdf939970f8db9de8b974 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz=20=28admin=29?= Date: Thu, 10 Dec 2020 16:32:49 +0100 Subject: [PATCH 47/54] fix wrong space --- bashrc_add | 4 ++-- bin/publishpvp | 2 +- vim/pack/plugins/start/vim-airline | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bashrc_add b/bashrc_add index 30f262f..ce75612 100755 --- a/bashrc_add +++ b/bashrc_add @@ -29,7 +29,7 @@ if [[ $- = *i* ]] ; then export MSC_BASH_COMPLETION="${HOME}/${MSC_SUBPATH}/bash_completion.d" # Load DEFAULTS - [ -e ${MSC_BASE}/defaults.conf ] && . ${MSC_BASE}/defaults.conf + [ -e ${MSC_BASE}/defaults.conf ] && . ${MSC_BASE}/defaults.conf # Userdata @@ -187,7 +187,7 @@ EOF SCRIPTEXIT # Start tmux if not defined as STARTTMUX in bashrc - logdebug "start tmux ${STARTTMUXDEFAULT} - ${STARTTMUXDEFAULT-$STARTTMUX}" + logdebug "start tmux ${STARTTMUXDEFAULT} - ${STARTTMUXDEFAULT-$STARTTMUX}" if ${STARTTMUXDEFAULT-$STARTTMUX} ; then cat << EOF diff --git a/bin/publishpvp b/bin/publishpvp index 0235908..3996a33 100755 --- a/bin/publishpvp +++ b/bin/publishpvp @@ -52,7 +52,7 @@ do appuser=jira ;; *) - echo "host ${DEST} not found -> exit" + echo "host ${DEST} not found -> exit" exit ;; esac diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index f39208f..c074620 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit f39208f1a074fb525270312a20c87521a50c74ef +Subproject commit c074620bfd0dc990afcfb07df91781e5b9caa66c From cd38cadb390e889b703097ba6fdcc3c0e1fe66fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Sat, 12 Dec 2020 14:31:36 +0100 Subject: [PATCH 48/54] update submodules --- vim/pack/plugins/start/fzf.vim | 2 +- vim/pack/plugins/start/vim-airline | 2 +- vim/pack/plugins/start/vim-gitgutter | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/vim/pack/plugins/start/fzf.vim b/vim/pack/plugins/start/fzf.vim index 8fa9cf0..65b6cdb 160000 --- a/vim/pack/plugins/start/fzf.vim +++ b/vim/pack/plugins/start/fzf.vim @@ -1 +1 @@ -Subproject commit 8fa9cf052409bbadf6bf24711b63bdb52c15c786 +Subproject commit 65b6cdb0f28de2629b6266b51d307d75d8c5c68c diff --git a/vim/pack/plugins/start/vim-airline b/vim/pack/plugins/start/vim-airline index c074620..f39208f 160000 --- a/vim/pack/plugins/start/vim-airline +++ b/vim/pack/plugins/start/vim-airline @@ -1 +1 @@ -Subproject commit c074620bfd0dc990afcfb07df91781e5b9caa66c +Subproject commit f39208f1a074fb525270312a20c87521a50c74ef diff --git a/vim/pack/plugins/start/vim-gitgutter b/vim/pack/plugins/start/vim-gitgutter index dfe55e2..512e299 160000 --- a/vim/pack/plugins/start/vim-gitgutter +++ b/vim/pack/plugins/start/vim-gitgutter @@ -1 +1 @@ -Subproject commit dfe55e2b924b86c654b63edb9bedc42aa4e08048 +Subproject commit 512e2999ed7ff367580e0d6bc4d2daa81663221f From 0cc7a967effc39e6e237fb6eff6dd5625d57cb43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Sun, 13 Dec 2020 15:32:10 +0100 Subject: [PATCH 49/54] set artist --- bin/exif-fixdatetime | 86 ++++++++++++++++++++++++++++++++++++-------- 1 file changed, 71 insertions(+), 15 deletions(-) diff --git a/bin/exif-fixdatetime b/bin/exif-fixdatetime index 202d67b..165e2a7 100755 --- a/bin/exif-fixdatetime +++ b/bin/exif-fixdatetime @@ -7,6 +7,7 @@ export LOGFILE=./$(basename $0).move.log [ -z "${setdate+x}" ] && setdate=true [ -z "${setoriginalfilename+x}" ] && setoriginalfilename=false [ -z "${movecreatedate+x}" ] && movecreatedate=false +[ -z "${setartist+x}" ] && setartist=false @@ -40,6 +41,7 @@ help () { forcedate=$forcedate [fase|true] false: datetimeoriginal and createdate is only updated from filename, if not set; true: tags are always updated setdate=$setdate [false|true] false: do not set date-tags, only if you are sure, tags are ok, and you want move or copy files; setoriginalfilenamee=$setoriginalfilename [false|true|force] false: do not set originalfilename from filname (default); true: set it, if not set; force: set it, also if exists; + setartist=$setartist [false|true|] true: set USERNAME from user, running the script; set this User Name # destination dest=$dest @@ -177,21 +179,51 @@ run_fix () { logwarn "do not set original filname in case of setoriginalfilename=$setoriginalfilename" ;; esac - if $forcedate; then - loginfo -n "set datetimeoriginal to $newDateTimeOriginal" - $setdate && [ -n "$newDateTimeOriginal" ] && exiftool -overwrite_original "-DateTimeOriginal=$newDateTimeOriginal" "$file" - loginfo -n "set createdate to datetimeoriginal: " - $setdate && exiftool -overwrite_original '-createdate Date: Mon, 14 Dec 2020 13:59:03 +0100 Subject: [PATCH 50/54] move function, add timestamp on initial clone --- bashrc_add | 10 ++++++++++ bin/git-myshellconfig-checkout | 7 +------ functions.sh | 2 ++ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/bashrc_add b/bashrc_add index ce75612..24f8671 100755 --- a/bashrc_add +++ b/bashrc_add @@ -103,6 +103,16 @@ EOF } + lastupdatesubmodules () { + date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules + } + export -f lastupdatesubmodules + + lastupdaterepo () { + date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo + } + export -f lastupdaterepo + sync_config () { if $MSC_GIT_SYNC; then local nok="" diff --git a/bin/git-myshellconfig-checkout b/bin/git-myshellconfig-checkout index d75dd98..0313c70 100755 --- a/bin/git-myshellconfig-checkout +++ b/bin/git-myshellconfig-checkout @@ -20,12 +20,7 @@ [ -z "${MSC_GIT_REMOTE_NAME+x}" ] && export MSC_GIT_REMOTE_NAME=origin [ -z "${MSC_GIT_BRANCH+x}" ] && export MSC_GIT_BRANCH=master -lastupdatesubmodules () { - date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules -} -lastupdaterepo () { - date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo -} + gitupdateend() { cat << EOF >> "${MSC_LOGFILE}" diff --git a/functions.sh b/functions.sh index 6c1d9e5..37ae1f8 100755 --- a/functions.sh +++ b/functions.sh @@ -334,6 +334,8 @@ sshmyshellconfig() { rm -rf ~/server-config && echo rm -rf ~/server-config loginfo git clone git clone --recurse-submodules $MSC_GIT_REMOTE \${HOME}/${MSC_SUBPATH} + date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules + date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo EOF EXIT From d905068df9347642f66220b0a99feebe98c9f9fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 14 Dec 2020 14:02:31 +0100 Subject: [PATCH 51/54] change path --- functions.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/functions.sh b/functions.sh index 37ae1f8..f4892b1 100755 --- a/functions.sh +++ b/functions.sh @@ -334,8 +334,8 @@ sshmyshellconfig() { rm -rf ~/server-config && echo rm -rf ~/server-config loginfo git clone git clone --recurse-submodules $MSC_GIT_REMOTE \${HOME}/${MSC_SUBPATH} - date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules - date "+%s" > ${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo + date "+%s" > \${HOME}/${MSC_SUBPATH}/.last_update_submodules + date "+%s" > \${HOME}/${MSC_SUBPATH}/.last_update_repo EOF EXIT From bfd6619d50209fa47aa3657c0398702e43e3e795 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 14 Dec 2020 14:05:18 +0100 Subject: [PATCH 52/54] change from loginfo to echo --- functions.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/functions.sh b/functions.sh index f4892b1..6eb1897 100755 --- a/functions.sh +++ b/functions.sh @@ -323,16 +323,16 @@ sshmyshellconfig() { $CMD /bin/bash << EOF [ -e /etc/bashrc ] && . /etc/bashrc [ -e /etc/bash.bashrc ] && . /etc/bash.bashrc - loginfo "modify ~/.bashrc" + echo "modify ~/.bashrc" sed -i -e '/^\[ -f bashrc_add \] /d' ~/.bashrc sed -i -e '/#MYSHELLCONFIG-start/,/#MYSHELLCONFIG-end/d' ~/.bashrc echo printf "%s\n" "#MYSHELLCONFIG-start" "[ -f \"\${HOME}/${MSC_SUBPATH}/bashrc_add\" ] && . \"\${HOME}/${MSC_SUBPATH}/bashrc_add\"" "#MYSHELLCONFIG-end"| tee -a ~/.bashrc #printf "%s\n" "#MYSHELLCONFIG-start" "if [ -e \${HOME}/${MSC_SUBPATH}/bashrc_add ]; then" " . \${HOME}/${MSC_SUBPATH}/bashrc_add;" "else" " if [ -f ~/bashrc_add ] ;then" " . ~/bashrc_add;" " fi;" "fi" "#MYSHELLCONFIG-end" |tee -a ~/.bashrc echo - loginfo cleanup from old config + echo cleanup from old config rm -rf ~/server-config && echo rm -rf ~/server-config - loginfo git clone + echo git clone git clone --recurse-submodules $MSC_GIT_REMOTE \${HOME}/${MSC_SUBPATH} date "+%s" > \${HOME}/${MSC_SUBPATH}/.last_update_submodules date "+%s" > \${HOME}/${MSC_SUBPATH}/.last_update_repo From 4335e70c411c17f89714364ef55b9887955a4cb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Mon, 14 Dec 2020 15:36:52 +0100 Subject: [PATCH 53/54] update submodules --- vim/pack/plugins/start/fzf.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vim/pack/plugins/start/fzf.vim b/vim/pack/plugins/start/fzf.vim index 65b6cdb..e9d62b4 160000 --- a/vim/pack/plugins/start/fzf.vim +++ b/vim/pack/plugins/start/fzf.vim @@ -1 +1 @@ -Subproject commit 65b6cdb0f28de2629b6266b51d307d75d8c5c68c +Subproject commit e9d62b4c873f5f207202b4ba5bbd63de7003a0d3 From a58bae642dd0675bf1de113bb5584a1e263a7f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakobus=20Sch=C3=BCrz?= Date: Tue, 15 Dec 2020 12:49:58 +0100 Subject: [PATCH 54/54] add local filelist to sshs FILELIST --- functions.sh | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/functions.sh b/functions.sh index 6eb1897..0e3f0ce 100755 --- a/functions.sh +++ b/functions.sh @@ -353,6 +353,11 @@ sshs() { local TMPBASHCONFIG=$(mktemp -p ${XDG_RUNTIME_DIR} -t bashrc.XXXXXXXX --suffix=.conf) local FILELIST=( "${MSC_BASE}/functions.sh" "${MSC_BASE}/logging" "${MSC_BASE}/myshell_load_fortmpconfig" $(getbashrcfile) ~/.aliases "${MSC_BASE}/aliases" "${MSC_BASE}/PS1" "${MSC_BASE}/bash_completion.d/*" ) + if [ -e "${HOME}/.config/myshellconfig/sshs_addfiles.conf" ] ; then + cat "${HOME}/.config/myshellconfig/sshs_addfiles.conf"|while read i;do + FILELIST+=("$i") + done + fi local SSH_OPTS="-o VisualHostKey=no -o ControlMaster=auto -o ControlPersist=15s -o ControlPath=~/.ssh/ssh-%r@%h:%p" # Read /etc/bashrc or /etc/bash.bashrc (depending on distribution) and /etc/profile.d/*.sh first cat << EOF >> "${TMPBASHCONFIG}" @@ -912,4 +917,29 @@ get_crtime() { printf "%s\t%s\n" "${target}" "${crtime}" done } + +# jira-confluence-specific is temporary in here +function getdbcreds_jira () { + [ $# -eq 0 ] return 1 + + DB_FILE=$1 + + DB_URL="$(grep -oPm1 "(?<=)[^<]+" ${DB_FILE})" + DB_USER="$(grep -oPm1 "(?<=)[^<]+" ${DB_FILE})" + DB_PWD="$(grep -oPm1 "(?<=)[^<]+" ${DB_FILE})" + DB_HOST="$(echo $DB_URL|sed 's@^.*//@@;s@\(^.*):\(.*\)/\(.*\)$@\1@')" + DB_PORT="$(echo $DB_URL|sed 's@^.*//@@;s@\(^.*):\(.*\)/\(.*\)$@\2@')" + DB_NAME="$(echo $DB_URL|sed 's@^.*//@@;s@\(^.*):\(.*\)/\(.*\)$@\3@')" + + cat << \ + EOF + DB_HOST: ${DB_HOST} + DB_PORT: ${DB_PORT} + DB_NAME: ${DB_NAME} + DB_USER: ${DB_USER} + DB_PWD: ${DB_PWD} +EOF + return 0 +} + #EOF