aboutsummaryrefslogtreecommitdiff
path: root/ratpoison/screen_run
diff options
context:
space:
mode:
authorVasil Zlatanov <vasil.zlatanov@gmail.com>2014-02-23 16:59:47 +0100
committerVasil Zlatanov <vasil.zlatanov@gmail.com>2014-02-23 16:59:47 +0100
commit4b66da7ff8060fffdeac1cc4cb27f3182b3f2d46 (patch)
treed596ad6a67295d3f46e4ab189fd2b3539ea83c10 /ratpoison/screen_run
downloaddotfiles-4b66da7ff8060fffdeac1cc4cb27f3182b3f2d46.tar.gz
dotfiles-4b66da7ff8060fffdeac1cc4cb27f3182b3f2d46.tar.bz2
dotfiles-4b66da7ff8060fffdeac1cc4cb27f3182b3f2d46.zip
First commit of dotfiles.
Diffstat (limited to 'ratpoison/screen_run')
-rwxr-xr-xratpoison/screen_run21
1 files changed, 21 insertions, 0 deletions
diff --git a/ratpoison/screen_run b/ratpoison/screen_run
new file mode 100755
index 0000000..07ba780
--- /dev/null
+++ b/ratpoison/screen_run
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+#
+# Connect to a named screen session if it exists, otherwise create it
+# If creating a new screen session, use the file screenrc.$session
+# in the .ratpoison directory.
+#
+screen_dir=$HOME/.ratpoison
+session=$1
+function die() {
+ echo "$0 error: $*"
+ exit 1
+}
+[ $# -ne 1 ] && die "$0 requires 1 argument (screen session name)"
+if screen -ls | grep $session; then
+ # This session exists, connect to it
+ screen -r $session
+else
+ session_config=$screen_dir/screenrc.$session
+ [ -f $session_config ] || die "config ($session_config) not found for $session"
+ screen -c $screen_dir/screenrc.$session -S $session
+fi