Allow lines with "REMOTE" to execute shell commands to get hostlist
authorJoerg Jaspert <joerg@nsb-software.de>
Mon, 29 Dec 2014 10:54:34 +0000 (11:54 +0100)
committerJoerg Jaspert <joerg@nsb-software.de>
Mon, 29 Dec 2014 10:54:34 +0000 (11:54 +0100)
bin/tm

diff --git a/bin/tm b/bin/tm
index 6d40fb4..c34c7de 100755 (executable)
--- a/bin/tm
+++ b/bin/tm
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# Copyright (C) 2011, 2012, 2013 Joerg Jaspert <joerg@debian.org>
+# Copyright (C) 2011, 2012, 2013, 2014 Joerg Jaspert <joerg@debian.org>
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions
@@ -252,6 +252,18 @@ function own_config() {
     if [ "${TMDATA[1]}" != "NONE" ]; then
         TMOPTS=${TMDATA[1]}
     fi
+
+    # Line 3 may start with REMOTE, then we get the list of hosts from elsewhere.
+    # So if it does, we exec the command given, then take the output as one host per
+    # line and appen it to TMDATA - while deleting the actual line with REMOTE in.
+    if [[ "${TMDATA[2]}" =~ ^REMOTE\ (.*) ]]; then
+        echo "Fetching hostnames from remote, please stand by..."
+        out=( $( ${BASH_REMATCH[1]} ) )
+        unset TMDATA[2]
+        TMDATA=( "${TMDATA[@]}" "${out[@]}" )
+        unset out
+    fi
+
 }
 
 # Simple overview of running sessions