Merge branch 'master' of /srv/git/myshellconfig
This commit is contained in:
commit
7fdd1bc3e2
11 changed files with 226 additions and 30 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -7,7 +7,6 @@ logs
|
|||
*.swp
|
||||
*.orig
|
||||
serverconfig.local.conf
|
||||
bashrc_local
|
||||
.local_scripts
|
||||
.git-token
|
||||
.last_update_submodules
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
|
||||
# set some variables to defaults, if not set in .bashrc
|
||||
[ -z ${SSHS+x} ] && export SSHS=false
|
||||
[ -z ${STARTTMUX+x} ] && export STARTTMUX=false
|
||||
|
||||
# check if we are a interactive shell
|
||||
# https://guide.bash.academy/expansions/
|
||||
|
@ -204,8 +203,8 @@ EOF
|
|||
SCRIPTEXIT
|
||||
|
||||
# Start tmux if not defined as STARTTMUX in bashrc
|
||||
logdebug "start tmux ${STARTTMUXDEFAULT} - ${STARTTMUXDEFAULT-$STARTTMUX}"
|
||||
if ${STARTTMUXDEFAULT-$STARTTMUX} ; then
|
||||
logdebug "start tmux ${STARTTMUXDEFAULT} - ${STARTTMUXREMOTEDEFAULT} - ${STARTTMUX-$STARTTMUXDEFAULT}"
|
||||
if ${STARTTMUX-$STARTTMUXDEFAULT} ; then
|
||||
cat << EOF
|
||||
|
||||
"User: $USER - $UID"
|
||||
|
|
|
@ -45,35 +45,37 @@ while [ $# -gt 0 ]; do
|
|||
shift
|
||||
;;
|
||||
-r|--force-repo-update)
|
||||
dosubmodupdate="true"
|
||||
dorepomodupdate="true"
|
||||
shift
|
||||
;;
|
||||
-s|--force-submodules-update)
|
||||
dosubmodupdate="true"
|
||||
shift
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*)
|
||||
echo "1: $1"
|
||||
PRE=""
|
||||
echo bla
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
# If TAG is set, checkout is always headless.
|
||||
[ -z "${MSC_GIT_TAG:+x}" ] || { export MSC_GIT_BRANCH=${MSC_GIT_TAG}; export PRE=""; }
|
||||
# If MSC_GIT_TAG is set, checkout is always headless.
|
||||
logwarn "git PRE: ${PRE}"
|
||||
[ -z "${MSC_GIT_TAG:+x}" ] || { export MSC_GIT_BRANCH=${MSC_GIT_TAG}; export PRE=""; echo "DEBUG"; }
|
||||
logwarn "git PRE: ${PRE}"
|
||||
|
||||
# Output
|
||||
#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 ${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules 2>/dev/null || echo 0 ) \
|
||||
[ -z "${MSC_GIT_UPD_SUBMOD_STATFILE+x}" ] && export MSC_GIT_UPD_SUBMOD_STATFILE="${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules"
|
||||
[ -z "${MSC_GIT_UPD_REPO_STATFILE+x}" ] && export MSC_GIT_UPD_REPO_STATFILE="${MSC_BASE%/}${MSC_BASE:+/}.last_update_repo"
|
||||
|
||||
if [ $(stat --printf %Y ${MSC_GIT_UPD_SUBMOD_STATFILE} 2>/dev/null || echo 0 ) \
|
||||
-lt $(date --date="${MSC_GIT_SUBMODULES_UPDATE_INTERVALL-${MSC_GIT_SUBMODULES_UPDATE_INTERVALL_DEFAULT}} hours ago" "+%s") \
|
||||
-a ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then
|
||||
[ -z "${dosubmodupdate+x}" ] && dosubmodupdate="true"
|
||||
fi
|
||||
[ -z "${MSC_GIT_UPD_SUBMOD_STATFILE+x}" ] && export MSC_GIT_UPD_SUBMOD_STATFILE="${MSC_BASE%/}${MSC_BASE:+/}.last_update_submodules"
|
||||
|
||||
if [ $(stat --printf %Y ${MSC_GIT_UPD_REPO_STATFILE} 2>/dev/null || echo 0 ) \
|
||||
-lt $(date --date="${MSC_GIT_REPO_UPDATE_INTERVALL-${MSC_GIT_REPO_UPDATE_INTERVALL_DEFAULT}} hours ago" "+%s") \
|
||||
|
@ -81,6 +83,12 @@ if [ $(stat --printf %Y ${MSC_GIT_UPD_REPO_STATFILE} 2>/dev/null || echo 0 ) \
|
|||
[ -z "${dorepoupdate+x}" ] && dorepoupdate="true"
|
||||
fi
|
||||
|
||||
if [ $(stat --printf %Y ${MSC_GIT_UPD_SUBMOD_STATFILE} 2>/dev/null || echo 0 ) \
|
||||
-lt $(date --date="${MSC_GIT_SUBMODULES_UPDATE_INTERVALL-${MSC_GIT_SUBMODULES_UPDATE_INTERVALL_DEFAULT}} hours ago" "+%s") \
|
||||
-a ${MSC_GIT_SUBMODULES_UPDATE-${MSC_GIT_SUBMODULES_UPDATE_DEFAULT-true}} ]; then
|
||||
[ -z "${dosubmodupdate+x}" ] && dosubmodupdate="true"
|
||||
fi
|
||||
|
||||
#echo $SGIT fetch ${MSC_GIT_REMOTE_NAME} -p 1>&2
|
||||
if $dorepoupdate; then
|
||||
loginfo "fetch repo${dosubmodupdate:+ and submodules}"
|
||||
|
@ -94,7 +102,7 @@ if $dorepoupdate; then
|
|||
cat << EOF >> "${MSC_LOGFILE}"
|
||||
no changes in local repo
|
||||
$SGIT checkout repo ${PRE}${PRE:+/}${MSC_GIT_BRANCH}
|
||||
EOF
|
||||
EOF
|
||||
$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; }
|
||||
touch $MSC_GIT_UPD_REPO_STATFILE
|
||||
|
|
130
bin/trashmail
Executable file
130
bin/trashmail
Executable file
|
@ -0,0 +1,130 @@
|
|||
#!/bin/bash
|
||||
|
||||
# creates trash email for registration for online-services
|
||||
# email is hashed from domain of service + login-username from linux-system
|
||||
# or only unhashed service-domain
|
||||
# this created email-address is added to LDAP target email als dcMailAlias
|
||||
# also added to pass passwordmanager of user
|
||||
|
||||
[ -e ${MSC_BASE}/defaults.conf ] && . ${MSC_BASE}/defaults.conf
|
||||
|
||||
LDAP_HOST=${LDAP_HOST_DEFAULT}
|
||||
BIND_DN=${LDAP_ADMIN_BIND_DN}
|
||||
PASS_ID=${PASS_ID_LDAP_ADMIN}
|
||||
OWN_DOMAIN=${TRASHMAIL_OWN_DOMAIN_DEFAULT}
|
||||
TARGET_MAIL=${TRASHMAIL_TARGET_MAIL_DEFAULT}
|
||||
HASHED_DEFAULT=${TRASHMAIL_HASHED_DEFAULT}
|
||||
|
||||
set -- $(getopt -u -o fh --long force,hashed,not-hashed -- "$@" )
|
||||
|
||||
while : ; do
|
||||
case $1 in
|
||||
-n|--not-hashed)
|
||||
HASHED=false
|
||||
shift
|
||||
;;
|
||||
-h|--hashed)
|
||||
HASHED=true
|
||||
shift
|
||||
;;
|
||||
-f|--force)
|
||||
FORCE=true
|
||||
shift
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*)
|
||||
wrong argument $1
|
||||
shift
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
URL=$1
|
||||
|
||||
case $URL in
|
||||
http*)
|
||||
DEST_DOMAIN=$(echo $URL|awk -F/ '{print $3}')
|
||||
;;
|
||||
[a-zA-Z]*)
|
||||
DEST_DOMAIN=${URL,,}
|
||||
;;
|
||||
*)
|
||||
logwarn "$URL is no regular url"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
echo "Create a trashmail-address for ${DEST_DOMAIN}" >&2
|
||||
|
||||
|
||||
if ${HASHED:-$HASHED_DEFAULT}; then
|
||||
TRASHUSER="$(echo ${DEST_DOMAIN}${USER}|md5sum -|awk '{print $1}')"
|
||||
else
|
||||
TRASHUSER=${DEST_DOMAIN}
|
||||
fi
|
||||
|
||||
TRASHMAIL=${TRASHUSER}@${OWN_DOMAIN}
|
||||
echo $TRASHMAIL
|
||||
|
||||
PASS_ENTRY="${PASS_PREFIX%/}${PASS_PREFIX:+/}${DEST_DOMAIN}/${TRASHMAIL}"
|
||||
|
||||
set -x
|
||||
cat << EOF |ldapmodify -Z -H ldap://${LDAP_HOST} -D ${BIND_DN} -x -w $(pass ${PASS_ID}|head -n 1)
|
||||
dn: dcSubMailAddress=${TARGET_MAIL},ou=mailaccounts,dc=schuerz,dc=at
|
||||
changetype: modify
|
||||
add: dcMailAlternateAddress
|
||||
dcMailAlternateAddress: ${TRASHMAIL}
|
||||
EOF
|
||||
|
||||
if [ $? -gt 0 ]; then
|
||||
echo pass find ${PASS_ENTRY}
|
||||
pass find ${TRASHMAIL}
|
||||
pass find ${TRASHMAIL}|grep -v "Search Terms"
|
||||
case $? in
|
||||
1)
|
||||
# returncode 1 from grep means, no line selected. so no entry exists, create new one
|
||||
echo "TEST1"
|
||||
CREATE=true
|
||||
;;
|
||||
0)
|
||||
echo FORCE: ${FORCE-false}
|
||||
if ${FORCE-false} ; then
|
||||
CREATE=true
|
||||
else
|
||||
echo "Current password for ${PASS_ENTRY} is $(pass ${PASS_ENTRY} |head -n1)."
|
||||
read -p "Overwrite? [Y|n]: "
|
||||
echo ""
|
||||
case $REPLY in
|
||||
y|Y)
|
||||
CREATE=true
|
||||
;;
|
||||
*)
|
||||
CREATE=false
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
echo "Something went wrong"
|
||||
exit 2
|
||||
;;
|
||||
esac
|
||||
else
|
||||
CREATE=true
|
||||
fi
|
||||
|
||||
if ${CREATE-false}; then
|
||||
cat << EOF |pass insert -m ${PASS_ENTRY}
|
||||
$(pwgen -y 50 1)
|
||||
email: ${TRASHMAIL}
|
||||
login: ${TRASHUSER}
|
||||
url: ${URL}
|
||||
comment: trashemail autogenerated, delete, when delete account there
|
||||
EOF
|
||||
fi
|
||||
set +x
|
||||
#pass git commit "${PASS_ENTRY}"
|
||||
pass -c ${PASS_ENTRY}
|
|
@ -13,3 +13,12 @@ export MSC_LOGLEVEL_DEFAULT="INFO"
|
|||
export MSC_FILELOGLEVEL_DEFAULT="DEBUG"
|
||||
export LOGLEVEL_DEFAULT="${MSC_LOGLEVEL_DEFAULT}"
|
||||
export FILELOGLEVEL_DEFAULT="${MSC_FILELOGLEVEL_DEFAULT}"
|
||||
export STARTTMUXDEFAULT=false
|
||||
export STARTTMUXREMOTEDEFAULT=true
|
||||
|
||||
export LDAP_HOST_DEFAULT=ldap.schuerz.at
|
||||
export LDAP_ADMIN_BIND_DN=cn=admin,dc=schuerz,dc=at
|
||||
export PASS_ID_LDAP_ADMIN="LDAP/binddn-admin"
|
||||
export TRASHMAIL_OWN_DOMAIN_DEFAULT=schuerz.at
|
||||
export TRASHMAIL_TARGET_MAIL_DEFAULT=wertstoffe@xundeenergie.at
|
||||
export TRASHMAIL_HASHED_DEFAULT=true
|
||||
|
|
24
defaults.conf.sample
Normal file
24
defaults.conf.sample
Normal file
|
@ -0,0 +1,24 @@
|
|||
### GIT ####
|
||||
export MSC_GIT_REPO_UPDATE_DEFAULT=true
|
||||
export MSC_GIT_REPO_UPDATE_INTERVALL_DEFAULT=48 #intervall in hours
|
||||
export MSC_GIT_SUBMODULES_UPDATE_DEFAULT=true
|
||||
export MSC_GIT_SUBMODULES_UPDATE_INTERVALL_DEFAULT=196 #intervall in hours
|
||||
export MSC_GIT_SUBMODULES_SERVER_DEFAULT="git://github.com/"
|
||||
export MSC_GIT_CHECKOUTSCRIPT_OPTIONS_DEFAULT="-h"
|
||||
export MSC_GIT_TIMEOUT_DEFAULT=5s
|
||||
export MSC_GIT_CHECKOUT_TIMEOUT_DEFAULT=20s
|
||||
### LOGGING ###
|
||||
# Possible loglevel-values: ERROR, WARN, INFO, DEBUG, TRACE
|
||||
export MSC_LOGLEVEL_DEFAULT="INFO"
|
||||
export MSC_FILELOGLEVEL_DEFAULT="DEBUG"
|
||||
export LOGLEVEL_DEFAULT="${MSC_LOGLEVEL_DEFAULT}"
|
||||
export FILELOGLEVEL_DEFAULT="${MSC_FILELOGLEVEL_DEFAULT}"
|
||||
export STARTTMUXDEFAULT=false
|
||||
export STARTTMUXREMOTEDEFAULT=true
|
||||
|
||||
export LDAP_HOST_DEFAULT=ldap.example.com
|
||||
export LDAP_ADMIN_BIND_DN=cn=admin,dc=example,dc=com
|
||||
export PASS_ID_LDAP_ADMIN="LDAP/binddn-admin"
|
||||
export TRASHMAIL_OWN_DOMAIN_DEFAULT=example.com
|
||||
export TRASHMAIL_TARGET_MAIL_DEFAULT=user@example.com
|
||||
export TRASHMAIL_HASHED_DEFAULT=true
|
|
@ -335,10 +335,13 @@ sshmyshellconfig() {
|
|||
echo
|
||||
echo cleanup from old config
|
||||
rm -rf ~/server-config && echo rm -rf ~/server-config
|
||||
echo git clone
|
||||
echo mkdir -p ~/.local
|
||||
mkdir -p ~/.local
|
||||
#echo git clone
|
||||
echo git clone --recurse-submodules $MSC_GIT_REMOTE \${HOME}/${MSC_SUBPATH}
|
||||
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
|
||||
# date "+%s" > \${HOME}/${MSC_SUBPATH}/.last_update_repo
|
||||
|
||||
EOF
|
||||
EXIT
|
||||
|
@ -828,7 +831,7 @@ token(){
|
|||
# token -r|-f|--reload-token <identity> will remove token from agent and add it again (if plugged off and plugged in again
|
||||
# startagent -t $@
|
||||
loadagent $@
|
||||
loginfo "$(ssh-add -s $PKCS11_MODULE)"
|
||||
loginfo "$(ssh-add -s $PKCS11_MODULE || { ssh-add -e $PKCS11-MODULE; ssh-add -s $PKCS11_MODULE; } )"
|
||||
loginfo "$(ssh-add -l)"
|
||||
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ if ! $SSHS; then
|
|||
[ -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 "${MSC_GIT_TAG:+x}" ] || { export MSC_GIT_BRANCH=${MSC_GIT_TAG}; export MSC_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"
|
||||
|
||||
|
|
|
@ -21,6 +21,14 @@ esac
|
|||
|
||||
# Load default values, functions, aliases for myshellconfig
|
||||
if ! $SSHS; then
|
||||
######################################################################################
|
||||
# ls is not in color on all systems
|
||||
export LS_OPTIONS='--color=auto'
|
||||
eval "`dircolors`"
|
||||
|
||||
#######################################################################################
|
||||
# User specific aliases and function
|
||||
echo "notmpconf"
|
||||
if [ -e ${MSC_BASE}/functions.sh ]; then
|
||||
. ${MSC_BASE}/functions.sh
|
||||
else
|
||||
|
@ -29,13 +37,6 @@ if ! $SSHS; then
|
|||
|
||||
|
||||
|
||||
######################################################################################
|
||||
# ls is not in color on all systems
|
||||
export LS_OPTIONS='--color=auto'
|
||||
eval "`dircolors`"
|
||||
|
||||
#######################################################################################
|
||||
# User specific aliases and function
|
||||
|
||||
|
||||
if [ -d "${MSC_BASE}/bin" ] ; then
|
||||
|
@ -80,15 +81,38 @@ if ! $SSHS; then
|
|||
#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
|
||||
STARTTMUXDEFAULT=true
|
||||
logwarn -n "attach tmux?"
|
||||
logwarn "TMUX: $TMUX"
|
||||
logwarn "SSH_TTY: $SSH_TTY"
|
||||
logwarn "TERM: $TERM"
|
||||
logwarn "tmux@${USER}: $(systemctl status tmux@${USER}.service 1>/dev/null 2>&1; echo $? )"
|
||||
if test $SSH_TTY; then
|
||||
logwarn "i am remote"
|
||||
if test ! $TMUX && test $TERM != screen; then
|
||||
logwarn "no screen"
|
||||
# if test $(systemctl status tmux@${USER}.service 1>/dev/null 2>&1; echo $? ) -eq 0; then
|
||||
if tmux has-session -t User || tmux has-session -t "${USER}"; then
|
||||
logwarn "tmux@${USER} is running"
|
||||
STARTTMUXDEFAULT=${STARTTMUXREMOTEDEFAULT}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# if test ! $TMUX && test $SSH_TTY && test $TERM != screen && test $(systemctl status tmux@${USER}.service 1>/dev/null 2>&1; echo $? ) -eq 0; then
|
||||
# : # STARTTMUXDEFAULT=${STARTTMUXREMOTEDEFAULT}
|
||||
# logwarn "TEST1"
|
||||
# else
|
||||
# logwarn "TEST2"
|
||||
# STARTTMUXDEFAULT=${STARTTMUXREMOTEDEFAULT}
|
||||
# fi
|
||||
logwarn "${STARTTMUXDEFAULT}"
|
||||
|
||||
unset -f pathmunge
|
||||
|
||||
else
|
||||
# run with temporary config
|
||||
|
||||
echo "tmpconf"
|
||||
case $TERM in
|
||||
*screen*)
|
||||
loginfo BASHRC: $BASHRC -> source it
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 7c59902f64dcd7ea356e891274b21144d1ea5948
|
||||
Subproject commit 1b1b8098419daacb92ca401ad6ee0ca6894a40ca
|
|
@ -1 +1 @@
|
|||
Subproject commit 6def2f0a8278410e6a908c491fd428b870d6516e
|
||||
Subproject commit c01977d027de854c6a85ed5c57915a7e8848f4b9
|
Loading…
Reference in a new issue