+++ /dev/null
-#!/bin/dash
-# Filename: grml-screen
-# Purpose: wrapper for screen to start with appropriate configuration
-# Authors: grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
-# Bug-Reports: see http://grml.org/bugs/
-# License: This file is licensed under the GPL v2.
-################################################################################
-
-# export variable USER for use withing GNU screen:
- export USER=`id -un`
-
-# fix tty permissions
- TTY=`tty`
- sudo chmod 660 $TTY
- sudo chown $USER.tty $TTY
-
-# FIXME: fix for screen race-conditions
-PID_FILE_="/var/lock/grml-screen"
-PID_FILE_CREATED_="false"
-MY_PID_="$$"
-if [ ! -d "/var/run/screen/S-$USER" ]; then
- # no /var/run/screen/S-$USER and possible no /var/run/screen either -> locking
- for i in `seq 40`; do # 40*0.25 = 10 seconds
- if lockfile-create --retry 0 $PID_FILE_; then
- echo $MY_PID_ >$PID_FILE_
- PID_FILE_CREATED_="true"
- break
- else
- PID_FILE_CREATED_="error"
- fi
- sleep 0.25
- done
-fi
-if [ $PID_FILE_CREATED_ = "true" ]; then
- # FORK BEGIN
- (
- for i in `seq 40`; do # 40*0.25 = 10 seconds
- if [ ! -d "/var/run/screen/S-$USER" ]; then
- sleep 0.25 # educated guess
- else
- break
- fi
- done
- if [ `cat $PID_FILE_` = $MY_PID_ ]; then
- rm $PID_FILE_
- lockfile-remove $PID_FILE_
- fi
- )&
- # FORK END
-elif [ $PID_FILE_CREATED_ = "error" ]; then
- SLEEP_TIME_="$(( $$ % 5 * 5 + 5 ))"
- echo "grml-screen: Error could not create lockfile! (sleeping for $SLEEP_TIME_)" >&2
- sleep $SLEEP_TIME_
-elif [ $PID_FILE_CREATED_ = "false" ]; then
- echo "nothing to do" &>/dev/null
-else
- echo "grml-screen: internal error - PID_FILE_CREATED_ == \"$PID_FILE_CREATED_\"" >&2
-fi
-
-# now run screen with config
- cd $HOME # important for e.g. hardcopy-feature
- # do we have a utf8 enabled terminal?
- [ -x /usr/bin/vt-is-UTF8 ] && /usr/bin/vt-is-UTF8 -q && UTF='-U'
- if [ `id -u` = 0 ] ; then
- exec screen $UTF -c /etc/grml/screenrc
- elif [ -r "$HOME/.screenrc" ] ; then
- exec screen $UTF -c "$HOME/.screenrc"
- else
- exec screen $UTF -c /etc/grml/screenrc_grml
- fi
-
-## END OF FILE #################################################################