aboutsummaryrefslogtreecommitdiff
path: root/config/ratpoison/screen_run
diff options
context:
space:
mode:
authorVasil Zlatanov <vasil.zlatanov@gmail.com>2015-08-18 01:39:43 +0200
committerVasil Zlatanov <vasil.zlatanov@gmail.com>2015-08-18 01:39:43 +0200
commitd923956d4866beb5093c89e0c1a4f54a9c37070f (patch)
tree849dcc217039940b4f41e1e82f595c7a00669d99 /config/ratpoison/screen_run
parent26a62982eab36ee68608a61306e6fab6447edd8a (diff)
downloaddotfiles-d923956d4866beb5093c89e0c1a4f54a9c37070f.tar.gz
dotfiles-d923956d4866beb5093c89e0c1a4f54a9c37070f.tar.bz2
dotfiles-d923956d4866beb5093c89e0c1a4f54a9c37070f.zip
major fixes and rearrangement
Diffstat (limited to 'config/ratpoison/screen_run')
-rwxr-xr-xconfig/ratpoison/screen_run21
1 files changed, 21 insertions, 0 deletions
diff --git a/config/ratpoison/screen_run b/config/ratpoison/screen_run
new file mode 100755
index 0000000..c70b567
--- /dev/null
+++ b/config/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 .config/ratpoison directory.
+#
+screen_dir=$HOME/.screen
+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