]> gitweb.fluxo.info Git - puppet-nodo.git/commitdiff
Adding system-wide screen session
authorSilvio Rhatto <rhatto@riseup.net>
Mon, 27 May 2013 01:26:43 +0000 (22:26 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Mon, 27 May 2013 01:26:43 +0000 (22:26 -0300)
files/etc/rc.local
manifests/base.pp
manifests/subsystem/profile.pp
manifests/subsystem/screen.pp [new file with mode: 0644]
manifests/subsystem/screen/startup.pp [new file with mode: 0644]
templates/screen/screenrc.erb [moved from files/etc/screenrc with 95% similarity]

index 4b8a41ecc63ca1957197550b92c53914b108aafb..c9a8046dd204d6adfef8d3c45a0a3bbd49255438 100644 (file)
@@ -35,5 +35,10 @@ if [ -f '/etc/init.d/shorewall' ]; then
   /etc/init.d/shorewall restart
 fi
 
+# Start system-wide screen session
+if [ -f "/etc/screenrc.startup" ]; then
+  /usr/bin/screen -d -m -S root -f /etc/screenrc.startup
+fi
+
 # Then exit
 exit 0
index 88af553f8024a85d9677b40a3bdc58b201a09c1c..687619d884477248ee9a2cbf2e123459a095541b 100644 (file)
@@ -6,6 +6,8 @@ class nodo::base {
   include nodo::subsystem::sudo
   include nodo::subsystem::locales
   include nodo::subsystem::profile
+  include nodo::subsystem::screen
+  include nodo::subsystem::screen::startup
   include nodo::subsystem::apt
   include nodo::subsystem::backup
   include nodo::subsystem::mail
index b90ac6522df33269eea1ee5bb9be34edb69123fb..33ddc6a73716a4a9711c1ec70fb25029b17b1f8b 100644 (file)
@@ -1,13 +1,5 @@
 # Custom configuration for user profiles
 class nodo::subsystem::profile {
-  file { "/etc/screenrc":
-    source  => "puppet:///modules/nodo/etc/screenrc",
-    owner   => "root",
-    group   => "root",
-    mode    => 0644,
-    ensure  => present,
-  }
-
   # As of squeeze, custom configuration can be placed directly at
   # /etc/profile.d, so in the future this file won't need to be
   # managed by puppet anymore.
diff --git a/manifests/subsystem/screen.pp b/manifests/subsystem/screen.pp
new file mode 100644 (file)
index 0000000..bcc2450
--- /dev/null
@@ -0,0 +1,9 @@
+class nodo::subsystem::screen {
+  file { "/etc/screenrc":
+    content => template('nodo/screen/screenrc.erb'),
+    owner   => "root",
+    group   => "root",
+    mode    => 0644,
+    ensure  => present,
+  }
+}
diff --git a/manifests/subsystem/screen/startup.pp b/manifests/subsystem/screen/startup.pp
new file mode 100644 (file)
index 0000000..ffbec08
--- /dev/null
@@ -0,0 +1,12 @@
+class nodo::subsytem::screen::startup(
+  $windows = hiera('nodo::subsystem::screen::startup::windows', [ "${::hostname} 0 tail -F /var/log/daemon.log" ]),
+  $select  = hiera('nodo::subsystem::screen::startup::select', 0)
+) {
+  file { "/etc/screenrc.startup":
+    content => template('nodo/screen/screenrc.erb'),
+    owner   => "root",
+    group   => "root",
+    mode    => 0644,
+    ensure  => present,
+  }
+}
similarity index 95%
rename from files/etc/screenrc
rename to templates/screen/screenrc.erb
index eb68114add0d05ed859462522a4a569d1a1af118..722aabc5d7413a9c50ce8f7b29257e916ee49874 100644 (file)
@@ -128,6 +128,14 @@ bind ^] paste [.]
 # screen -t local 0
 # screen -t mail 1 elm
 # screen -t 40 2 rlogin faui40
+<%- if windows != '' then -%>
+<% windows.each do |line| -%>
+screen -t <%= line %>
+<%- end -%>
+<%- end -%>
+<%- if select != '' then -%>
+select <%= select %>
+<%- end -%>
 
 # caption always "%3n %t%? @%u%?%? [%h]%?"
 # hardstatus alwaysignore