summaryrefslogtreecommitdiff
path: root/packages/cern-scripts/resources
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cern-scripts/resources')
-rwxr-xr-xpackages/cern-scripts/resources/bin/database-tunnels.sh48
-rwxr-xr-xpackages/cern-scripts/resources/bin/dmenu-pass.sh40
-rwxr-xr-xpackages/cern-scripts/resources/bin/dmenu-software.sh13
-rwxr-xr-xpackages/cern-scripts/resources/bin/gnome-commands.sh19
-rwxr-xr-xpackages/cern-scripts/resources/bin/restart-gwt.sh16
-rwxr-xr-xpackages/cern-scripts/resources/bin/smtp-server.py20
-rwxr-xr-xpackages/cern-scripts/resources/bin/telepath-setpresence.sh6
-rw-r--r--packages/cern-scripts/resources/lib/activate.inc.sh68
-rw-r--r--packages/cern-scripts/resources/lib/aisadm-fingerprint1
-rw-r--r--packages/cern-scripts/resources/lib/environments.inc.sh6
10 files changed, 237 insertions, 0 deletions
diff --git a/packages/cern-scripts/resources/bin/database-tunnels.sh b/packages/cern-scripts/resources/bin/database-tunnels.sh
new file mode 100755
index 0000000..034ecf5
--- /dev/null
+++ b/packages/cern-scripts/resources/bin/database-tunnels.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+REMOTE_UNC_PATH="//cerndfs.cern.ch/dfs/Applications/Oracle"
+AISADM_IP=128.142.153.100
+AISADM_FINGERPRINT="`dirname \"$0\"`/../lib/aisadm-fingerprint"
+SSH_USER=$USER
+TNSNAMES="$HOME/.cache/tnsnames"
+LOCAL=false
+TEMP=`getopt -o phl: --long help,local,user: \
+ -n '$0' -- "$@"`
+if [ $? != 0 ] ; then echo "Failed to parse arguments..." >&2 ; exit 1 ; fi
+
+# Note the quotes around `$TEMP': they are essential!
+eval set -- "$TEMP"
+
+function print() { echo -e "\e]0;$1\a"; echo "$1"; }
+
+while true ; do
+ case "$1" in
+ -p|--local) LOCAL=true ; shift ;;
+ -l|--user) shift; SSH_USER=$1; shift ;;
+ -h|--help) echo "$0 [--help|--local] [-l <name>|--user <name>]"; exit 0;;
+ --) shift ; break ;;
+ *) echo "Internal error! ($*)" ; exit 1 ;;
+ esac
+done
+
+if ! $LOCAL; then
+ print "Mirror tnsnames.ore files to $TNSNAMES" &&
+ mkdir -p "$TNSNAMES/admin" "$TNSNAMES/admin_localhost" &&
+ smbclient -k "$REMOTE_UNC_PATH" -D ADMIN_localhost -TXc - 'ADMIN_localhost/OLD' | tar --strip-components=2 -x -C "$TNSNAMES/admin_localhost" &&
+ smbclient -k "$REMOTE_UNC_PATH" -D ADMIN -TXc - 'ADMIN/OLD'| tar --strip-components=2 -x -C "$TNSNAMES/admin" ||
+ echo "failed to mirror tnsnames to $TNSNAMES" >&2
+fi
+
+if $LOCAL; then
+ SSH_EXTRAOPTS="-oProxyCommand=ssh -l \"$SSH_USER\" lxplus.cern.ch nc $AISADM_IP 22"
+else
+ true
+fi
+
+print "Database Tunnel" &&
+ ssh -l "$SSH_USER" \
+ -L 10301:cman1.cern.ch:10300 -L 10302:cman2.cern.ch:10300 \
+ -o UserKnownHostsFile=$AISADM_FINGERPRINT \
+ ${SSH_EXTRAOPTS:+"$SSH_EXTRAOPTS"} \
+ $AISADM_IP \
+ "date; echo tunnel is running; cat"
+
diff --git a/packages/cern-scripts/resources/bin/dmenu-pass.sh b/packages/cern-scripts/resources/bin/dmenu-pass.sh
new file mode 100755
index 0000000..bb3be7a
--- /dev/null
+++ b/packages/cern-scripts/resources/bin/dmenu-pass.sh
@@ -0,0 +1,40 @@
+#!/usr/bin/env bash
+
+shopt -s nullglob globstar
+
+prefix=${PASSWORD_STORE_DIR-~/.password-store}
+password_files=( "$prefix"/**/*.gpg )
+password_files=( "${password_files[@]#"$prefix"/}" )
+password_files=( "${password_files[@]%.gpg}" )
+
+password=$(printf '%s\n' "${password_files[@]}" | dmenu "$@")
+
+[[ -n $password ]] || exit
+
+while true; do
+ pass show "$password" 2>&1 \
+ | sed -e 's/^pass:.*/pass: XXXX/' \
+ | xmessage -file - \
+ -buttons "Done:1,Copy 'login':2,Copy 'pass':3,Copy all:4" \
+ -default "Done" \
+ -nearmouse -timeout 10
+ case "$?" in
+ 2)
+ pass show "$password" 2>&1 \
+ | sed -ne 's/^login: \(.*\)/\1/p' \
+ | xclip -i -verbose -l 1 2>/dev/null
+ ;;
+ 3)
+ pass show "$password" 2>&1 \
+ | sed -ne 's/^pass: \(.*\)/\1/p' \
+ | xclip -i -verbose -l 1 2>/dev/null
+ ;;
+ 4)
+ pass show "$password" 2>&1 \
+ | xclip -i -verbose -l 1 2>/dev/null
+ ;;
+ *)
+ break
+ ;;
+ esac
+done
diff --git a/packages/cern-scripts/resources/bin/dmenu-software.sh b/packages/cern-scripts/resources/bin/dmenu-software.sh
new file mode 100755
index 0000000..bca5b54
--- /dev/null
+++ b/packages/cern-scripts/resources/bin/dmenu-software.sh
@@ -0,0 +1,13 @@
+#!/bin/bash -l
+
+sysenv='System native environment'
+
+env=`(echo "$sysenv"; plain_list_envs) | dmenu`
+
+test -f "$HOME/.cache/dmenu_run" && rm -f "$HOME/.cache/dmenu_run"
+
+if [ "$env" == "$sysenv" ]; then
+ dmenu_run
+else
+ bash -l -c "activate $env; dmenu_run"
+fi
diff --git a/packages/cern-scripts/resources/bin/gnome-commands.sh b/packages/cern-scripts/resources/bin/gnome-commands.sh
new file mode 100755
index 0000000..ab9de7d
--- /dev/null
+++ b/packages/cern-scripts/resources/bin/gnome-commands.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+here=`dirname "$0"`
+here=`realpath "$here"`
+set -x
+dconf write /org/mate/marco/keybinding-commands/command-1 "'$here/telepath-setpresence.sh available'"
+dconf write /org/mate/marco/global-keybindings/run-command-1 "'<Super>n'"
+
+dconf write /org/mate/marco/keybinding-commands/command-2 "'$here/telepath-setpresence.sh busy'"
+dconf write /org/mate/marco/global-keybindings/run-command-2 "'<Super>b'"
+
+dconf write /org/mate/marco/keybinding-commands/command-3 "'mate-terminal'"
+dconf write /org/mate/marco/global-keybindings/run-command-3 "'<Super>Return'"
+
+dconf write /org/mate/marco/keybinding-commands/command-4 "'$here/dmenu-software.sh'"
+dconf write /org/mate/marco/global-keybindings/run-command-4 "'<Super>c'"
+
+dconf write /org/mate/marco/keybinding-commands/command-5 "'$here/dmenu-pass.sh'"
+dconf write /org/mate/marco/global-keybindings/run-command-5 "'<Super>p'"
+
diff --git a/packages/cern-scripts/resources/bin/restart-gwt.sh b/packages/cern-scripts/resources/bin/restart-gwt.sh
new file mode 100755
index 0000000..3870874
--- /dev/null
+++ b/packages/cern-scripts/resources/bin/restart-gwt.sh
@@ -0,0 +1,16 @@
+#!/bin/sh
+set -x
+pid=`jps | grep DevMode | cut -f 1 -d ' '`
+if [ -z "$pid" ]; then
+ echo "no running gwt-client found" >&2
+ exit 1
+fi
+
+cwd=`readlink "/proc/${pid}/cwd"`
+cmd=`cat "/proc/${pid}/cmdline" | tr '\0' ' '`
+cd "$cwd"
+kill -9 "$pid"
+
+sleep 1
+$cmd >/dev/null 2>&1 &
+disown -ar
diff --git a/packages/cern-scripts/resources/bin/smtp-server.py b/packages/cern-scripts/resources/bin/smtp-server.py
new file mode 100755
index 0000000..1cfef81
--- /dev/null
+++ b/packages/cern-scripts/resources/bin/smtp-server.py
@@ -0,0 +1,20 @@
+#!/usr/bin/env python
+import sys, os, mailbox, email, smtpd, asyncore
+
+class MaildirServer(smtpd.PureProxy):
+ def __init__(self, localaddr, remoteaddr):
+ smtpd.SMTPServer.__init__(self, localaddr, remoteaddr)
+ self.maildir = mailbox.Maildir("./Maildir", create=True)
+ def _deliver(self, mailfrom, rcpttos, data):
+ mail = email.message_from_string(data)
+ maildirMail = Message(mail)
+ self.maildir.add(maildirMail)
+
+if __name__ == '__main__':
+ muttrc = os.path.join(os.path.dirname(__file__), "muttrc")
+ print("Use `mutt -F {}' to read mails".format(muttrc))
+ smtpd.DEBUGSTREAM = sys.stderr
+ server = MaildirServer(("0.0.0.0", 8025), (None, None))
+ asyncore.loop()
+
+# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4
diff --git a/packages/cern-scripts/resources/bin/telepath-setpresence.sh b/packages/cern-scripts/resources/bin/telepath-setpresence.sh
new file mode 100755
index 0000000..5187bb6
--- /dev/null
+++ b/packages/cern-scripts/resources/bin/telepath-setpresence.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+# $1 can be 'available' or 'busy' or ?
+qdbus org.freedesktop.Telepathy.Connection.haze.sipe.yves_2efischer_40cern_2ech_2cyfischer \
+ /org/freedesktop/Telepathy/Connection/haze/sipe/yves_2efischer_40cern_2ech_2cyfischer \
+ org.freedesktop.Telepathy.Connection.Interface.SimplePresence.SetPresence \
+ "$1" ""
diff --git a/packages/cern-scripts/resources/lib/activate.inc.sh b/packages/cern-scripts/resources/lib/activate.inc.sh
new file mode 100644
index 0000000..79bed6b
--- /dev/null
+++ b/packages/cern-scripts/resources/lib/activate.inc.sh
@@ -0,0 +1,68 @@
+
+# non-interactive activate
+ __activate_env() {
+ for func in $(typeset -F | cut -f 3 -d ' ' | grep -E '^__env_'); do
+ if [[ "$func" == "__env_$1" ]]; then
+ $func
+ echo "Activated $1"
+ return 0
+ fi
+ done
+ echo "Error: Environment not found $1" >&2
+ return 1
+}
+
+# print all defined envs
+list_envs() {
+ for env in $(typeset -F | sed -n -e 's/^declare -f __env_//p'); do
+ active=false
+ for env_active in $ENV_ACTIVE; do
+ if [ "$env_active" == "$env" ]; then
+ active=true
+ fi
+ done
+ if $active; then
+ echo -n "${env}* "
+ else
+ echo -n "$env "
+ fi
+ done
+ echo ""
+}
+
+plain_list_envs() {
+ typeset -F | sed -n -e 's/^declare -f __env_//p'
+}
+
+# Interactive activate
+activate() {
+ err=false
+ for env in $*; do
+ if ! typeset -F | grep -q -E "^declare -f __env_${env}$"; then
+ echo "Environment not defined: $env"
+ err=true
+ fi
+ done
+ if $err; then
+ return 1
+ fi
+
+ for env in $*; do
+ if typeset -F | grep -q -E "^declare -f __env_${env}$"; then
+ export ENV_ACTIVE="$ENV_ACTIVE${ENV_ACTIVE:+ }$env"
+ __env_${env}
+ fi
+ done
+ echo "Active: $ENV_ACTIVE"
+}
+
+# initialization
+for env_request in $ENV_ACTIVE; do
+ __activate_env $env_request
+done
+
+# bash-completion for `activate'
+_activate() {
+ _init_completion -s || return
+ COMPREPLY=( $(compgen -W "$(list_envs)" -- $cur) )
+} && complete -F _activate activate
diff --git a/packages/cern-scripts/resources/lib/aisadm-fingerprint b/packages/cern-scripts/resources/lib/aisadm-fingerprint
new file mode 100644
index 0000000..23becf9
--- /dev/null
+++ b/packages/cern-scripts/resources/lib/aisadm-fingerprint
@@ -0,0 +1 @@
+|1|OsR/sAjrVPr+fcFcuD9RvXs5VdQ=|WV2xLsZ+NDr54Iuyxcl8sghHhtM= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA4bg2L316l/5zs7S7hE69fev4tWYczJy/Yf2AI1rhG5j1+EXZKMnCUkm1bpZUNu8g2fzg/P6wPSTQyZmc7ieQaKoiz69ZQ2mr+bIi2ET+50DDO9ZzrVFnKeOzs669fSfWp3Y7o8ubTRx5t/nLrMTxSDUQxXitk1UV5mosE5yzlJ665zlEE8+rVsqhhBC7bfg2lJR5HptxpCR9kVSyLkHydEXC8WltW06bpBHEuvKWAkAMMfftOHowWLCEslOFUirpjR65uqK+da9v3SfUvOYF8JZCrw7yDutyx5bzqFVS3N39T/7QPGJLYRJip1DPh8OvtPOPLLbdPY76NrodmRn9aw==
diff --git a/packages/cern-scripts/resources/lib/environments.inc.sh b/packages/cern-scripts/resources/lib/environments.inc.sh
new file mode 100644
index 0000000..517f500
--- /dev/null
+++ b/packages/cern-scripts/resources/lib/environments.inc.sh
@@ -0,0 +1,6 @@
+__env_java8() {
+ export JAVA_HOME=/usr/lib/jvm/java-8.66-oraclejdk/
+ export PATH=$JAVA_HOME/bin:$PATH
+
+
+} \ No newline at end of file