diff --git a/aliases b/aliases index 9500781..9052383 100644 --- a/aliases +++ b/aliases @@ -48,7 +48,7 @@ alias gcm='git checkout master' # xdg-user-dirs alias godesktop='[ -e $(xdg-user-dir DESKTOP) ] && cd $(xdg-user-dir DESKTOP)' alias godoc='[ -e $(xdg-user-dir DOCUMENTS) ] && cd $(xdg-user-dir DOCUMENTS)' -alias godownload='[ -e $(xdg-user-dir DOWNLOAD) ] && cd $(xdg-user-dir DOWNLOAD' +alias godownload='[ -e $(xdg-user-dir DOWNLOAD) ] && cd $(xdg-user-dir DOWNLOAD)' alias gomusic='[ -e $(xdg-user-dir MUSIC) ] && cd $(xdg-user-dir MUSIC)' alias gopublic='[ -e $(xdg-user-dir PUBLICSHARE) ] && cd $(xdg-user-dir PUBLICSHARE)' alias gotempl='[ -e $(xdg-user-dir TEMPLATES) ] && cd $(xdg-user-dir TEMPLATES)' @@ -122,10 +122,10 @@ alias unetbootin='export QT_X11_NO_MITSHM=1 unetbootin' alias vi='/usr/bin/vim' alias vlc='VDPAU_DRIVER=va_gl vlc' alias tmux='tmux -f ~/.tmux.conf' -alias youtube-dl-whole-video="youtube-dl --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'mp4' -o '%(title)s.%(ext)s' -w -c " -alias youtube-dl-whole-video-to-playlistdir="youtube-dl --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'mp4' -o '%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' -w -c " -alias youtube-dl-whole-user="youtube-dl --yes-playlist --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'mp4' -o '%(uploader)s/%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' -w -c " -alias youtube-dl-whole-playlist="youtube-dl --yes-playlist --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'mp4' -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' -w -c " +alias youtube-dl-whole-video="youtube-dl -i --no-overwrites --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'mp4' -o '%(title)s-%(id)s.%(ext)s' -w -c " +alias youtube-dl-whole-video-to-playlistdir="youtube-dl -i --no-overwrites --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'mp4' -o '%(uploader)s/%(playlist)s/%(title)s-%(id)s.%(ext)s' -w -c " +alias youtube-dl-whole-user="youtube-dl -i --no-overwrites --yes-playlist --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'mp4' -o '%(uploader)s/%(playlist)s/%(title)s-%(id)s.%(ext)s' -w -c " +alias youtube-dl-whole-playlist="youtube-dl -i --no-overwrites --yes-playlist --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'mp4' -o '%(playlist)s/%(title)s-%(id)s.%(ext)s' -w -c " # rock64 alias rock64='sudo minicom -D /dev/ttyUSB0 --color=on' @@ -177,3 +177,18 @@ alias aldebaranreboot='ssh aldebaran sudo systemctl reboot' # nextcloud alias nextcloud-add-missing-indices='docker exec -ti nc_app_1 php occ db:add-missing-indices' alias nextcloud-upgrade='docker-compose down && docker image rm nc_app:latest nc_web:latest && docker-compose pull && docker-compose up --build -d' + +#--- JIRA --- +alias gojiralib='cd /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/' +alias gojirainstall='cd /opt/atlassian/jira/' +alias gojirahome='cd /var/atlassian/application-data/jira/' +alias gojiralog='cd /var/atlassian/application-data/jira/log' +alias tailjra='cd /var/atlassian/application-data/jira/log; tail -F atlassian-jira.log' + +#--- CONFLUENCE --- +alias gocnflib='cd /opt/atlassian/confluence/confluence/WEB-INF/lib/' +alias gocnfinstall='cd /opt/atlassian/confluence/' +alias gocnfhome='cd /var/atlassian/application-data/confluence/' +alias gocnflog='cd /var/atlassian/application-data/confluence/logs' +alias tailcnf='cd /var/atlassian/application-data/confluence/logs; tail -F atlassian-confluence.log' + diff --git a/bash_completion.d/reachable b/bash_completion.d/reachable new file mode 100644 index 0000000..4696ace --- /dev/null +++ b/bash_completion.d/reachable @@ -0,0 +1,3 @@ +[ -e /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion +[ -e /usr/share/bash-completion/completions/ssh ] && . /usr/share/bash-completion/completions/ssh +shopt -u hostcomplete && complete -F _ssh reachable diff --git a/bash_completion.d/reachable-default b/bash_completion.d/reachable-default new file mode 100644 index 0000000..69b8cb6 --- /dev/null +++ b/bash_completion.d/reachable-default @@ -0,0 +1,3 @@ +[ -e /usr/share/bash-completion/bash_completion ] && . /usr/share/bash-completion/bash_completion +[ -e /usr/share/bash-completion/completions/ssh ] && . /usr/share/bash-completion/completions/ssh +shopt -u hostcomplete && complete -F _ssh reachable-default diff --git a/bin/youtube-dl-download-or-update.sh b/bin/youtube-dl-download-or-update.sh index 4401f68..9348b67 100755 --- a/bin/youtube-dl-download-or-update.sh +++ b/bin/youtube-dl-download-or-update.sh @@ -1,2 +1,2 @@ #!/bin/bash -youtube-dl --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' -o '%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s' -c -w -a ./url +youtube-dl --write-description --write-info-json --write-annotations --write-all-thumbnails -f 'bestvideo[ext=mp4]+bestaudio[ext=m4a]/best[ext=mp4]/best' -o '%(playlist)s/%(title)s.%(ext)s' -c -w -a ./url diff --git a/functions.sh b/functions.sh index cd4fe4a..ea65b87 100644 --- a/functions.sh +++ b/functions.sh @@ -123,6 +123,7 @@ $ENCFS_PASSWORD uencfs () { local FUSERMOUNT=$(which fusermount 2>/dev/null || exit 127 ) + local i [ -z ${FUSERMOUNT+x} ] && return 127 if [ $# -eq 1 ]; then if [ ! -d ${1} ];then @@ -130,12 +131,14 @@ uencfs () { return 128 else echo umount encrypted directory $1 >&2 + sync $FUSERMOUNT -u "$1" fi else echo "no arguments given. Umount all mounted encfs-dirs" >&2 for i in $(mount|grep encfs|sed -e 's/^encfs on \(.*\)\ type.*$/\1/');do echo $FUSERMOUNT -u "$i" + sync $FUSERMOUNT -u "$i" done return 1 @@ -225,6 +228,10 @@ mkcd () { sshmyshellconfig() { + [ -z "${MYSHELLCONFIG_SUBPATH+x}" ] && MYSHELLCONFIG_SUBPATH=".local/myshellconfig" + [ -z "${MYSHELLCONFIG_BASE+x}" ] && MYSHELLCONFIG_BASE="${HOME}/${MYSHELLCONFIG_SUBPATH}" + MYSHELLCONFIG_BASE_PARENT="$(dirname $MYSHELLCONFIG_BASE)" + if [ $1 == "localhost" ]; then CMD="" else @@ -254,9 +261,11 @@ sshs() { # MKTMPCMD='mktemp $(echo ${XDG_RUNTIME_DIR}/bashrc.XXXXXXXX.conf)' # VIMMKTMPCMD="mktemp ${XDG_RUNTIME_DIR}/vimrc.XXXXXXXX.conf" + local f local TMPBASHCONFIG=$(mktemp -p ${XDG_RUNTIME_DIR} -t bashrc.XXXXXXXX --suffix=.conf) - local FILELIST=( ~/.aliases "${MYSHELLCONFIG_BASE}/functions.sh" "${MYSHELLCONFIG_BASE}/aliases" "${MYSHELLCONFIG_BASE}/PS1" "${MYSHELLCONFIG_BASE}/bash_completion.d/*" "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" ) + local FILELIST=( $(getbashrcfile) ~/.aliases "${MYSHELLCONFIG_BASE}/functions.sh" "${MYSHELLCONFIG_BASE}/aliases" "${MYSHELLCONFIG_BASE}/PS1" "${MYSHELLCONFIG_BASE}/bash_completion.d/*" "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" ) + 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}" [ -e /etc/bashrc ] && BASHRC=/etc/bashrc @@ -272,6 +281,7 @@ for i in /etc/profile.d/*.sh; do fi fi done +unset i EOF for f in ${FILELIST[*]}; do @@ -284,8 +294,8 @@ EOF if [ $# -ge 1 ]; then if [ -e "${TMPBASHCONFIG}" ] ; then local RCMD="/bin/bash --noprofile --norc -c " - local REMOTETMPBASHCONFIG=$(ssh -T -o VisualHostKey=no $@ "mktemp -p \${XDG_RUNTIME_DIR} -t bashrc.XXXXXXXX --suffix=.conf"| tr -d '[:space:]' ) - local REMOTETMPVIMCONFIG=$(ssh -T -o VisualHostKey=no $@ "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}" @@ -299,11 +309,11 @@ title "\$USER@\$HOSTNAME: \$PWD" echo "This bash runs with temporary config from \$BASHRC" EOF - ssh -T -o VisualHostKey=no $@ "cat > ${REMOTETMPBASHCONFIG}" < "${TMPBASHCONFIG}" - ssh -T -o VisualHostKey=no $@ "cat > ${REMOTETMPVIMCONFIG}" < "${MYSHELLCONFIG_BASE}/vimrc" + ssh -T ${SSH_OPTS} $@ "cat > ${REMOTETMPBASHCONFIG}" < "${TMPBASHCONFIG}" + ssh -T ${SSH_OPTS} $@ "cat > ${REMOTETMPVIMCONFIG}" < "${MYSHELLCONFIG_BASE}/vimrc" RCMD=" trap \"rm -f ${REMOTETMPBASHCONFIG} ${REMOTETMPVIMCONFIG}\" EXIT " ; - ssh -t $@ "$RCMD; SSHS=true bash -c \"function bash () { /bin/bash --rcfile ${REMOTETMPBASHCONFIG} -i ; } ; export -f bash; exec bash --rcfile ${REMOTETMPBASHCONFIG}\"" + ssh -t ${SSH_OPTS} $@ "$RCMD; SSHS=true bash -c \"function bash () { /bin/bash --rcfile ${REMOTETMPBASHCONFIG} -i ; } ; export -f bash; exec bash --rcfile ${REMOTETMPBASHCONFIG}\"" rm "${TMPBASHCONFIG}" else echo "${TMPBASHCONFIG} does not exist. Use »ssh $@«" >&2 @@ -350,7 +360,7 @@ vim-repair-vundle () { getbashrcfile () { if [ -z ${BASHRC+x} ] ; then - echo "bash uses default" + echo "bash uses default" >&2 else cat /proc/$$/cmdline | xargs -0 echo|awk '{print $3}' fi @@ -358,7 +368,7 @@ getbashrcfile () { catbashrcfile () { if [ -z ${BASHRC+x} ] ; then - echo "bash uses default" + echo "bash uses default" >&2 else #cat $(cat /proc/$$/cmdline | xargs -0 echo|awk '{print $3}') cat $(getbashrcfile) @@ -367,7 +377,7 @@ catbashrcfile () { getvimrcfile () { if [ -z ${VIMRC+x} ] ; then - echo "vim uses default" + echo "vim uses default" >&2 else echo $VIMRC fi @@ -375,7 +385,7 @@ getvimrcfile () { catvimrcfile () { if [ -z ${VIMRC+x} ] ; then - echo "vim uses default" + echo "vim uses default" >&2 else #cat $VIMRC cat $(getvimrcfile) @@ -523,6 +533,7 @@ turnonconfigsync() { } function gnome-shell-extensions-enable-defaults() { + local i if [ -f ~/.config/gnome-shell-extensions-default.list ]; then for i in $(cat ~/.config/gnome-shell-extensions-default.list); do #gnome-shell-extension-tool -e $i; @@ -564,4 +575,41 @@ gnome-shell-extensions-make-actual-permanent-systemwide() { sudo sed -i "/\[org\/gnome\/shell\]/a${line}${EXTENSIONS}" "${file}" sudo dconf update } + +reachable-default () { + local SERVER=$1 + local PORT=${2:-22} + local res=1 + if nc -z $SERVER $PORT 2>/dev/null; then + echo "${SERVER}:${PORT} is reachable" >&2 + res=0 + else + echo "${SERVER}:${PORT} is not reachable" >&2 + res=1 + fi + return $res +} + +reachable () { + local SERVER=$1 + local IP=$(dig +nocmd $SERVER a +noall +answer|tail -n 1 |awk '{print $5}') + local PORT=${2:-22} + local SEC=${3:-1} + local res=1 + local i + echo -n "Try to connect to ${SERVER}:${PORT} " >&2 + for i in $(seq 1 $SEC); do + echo -n "." >&2 + if reachable-default ${IP} ${PORT} 2>/dev/null; then + res=0 + break + fi + [ ${SEC} -gt 1 -a $i -lt ${SEC} ] && sleep 1 + done + + [ ${res} -gt 0 ] && echo " not reachable" >&2 || echo " success" >&2 + + return $res + +} #EOF diff --git a/myshell_load_defaults b/myshell_load_defaults index bb34a70..658d925 100644 --- a/myshell_load_defaults +++ b/myshell_load_defaults @@ -61,6 +61,7 @@ if ! $SSHS; then for i in $( ls "${MYSHELLCONFIG_BASH_COMPLETION}" ); do . "${MYSHELLCONFIG_BASH_COMPLETION}/${i}" done + unset i fi if [ -f "${MYSHELLCONFIG_BASE}/myshell_load_fortmpconfig" ]; then diff --git a/vimrc b/vimrc index aacd430..5b024b5 100644 --- a/vimrc +++ b/vimrc @@ -31,7 +31,7 @@ if !empty(glob("~/.vim/bundle/Vundle.vim")) Plugin pluginrepopath . 'gmarik/Vundle.vim' . pluginextension Plugin pluginrepopath . 'vim-scripts/Zenburn' . pluginextension -" Plugin pluginrepopath . 'Solarized' . pluginextension + Plugin pluginrepopath . 'Solarized' . pluginextension Plugin pluginrepopath . 'altercation/vim-colors-solarized' . pluginextension Plugin pluginrepopath . 'vim-scripts/indentpython.vim' . pluginextension Plugin pluginrepopath . 'tmhedberg/SimpylFold' . pluginextension