aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--files/etc/rc.local5
-rw-r--r--manifests/base.pp2
-rw-r--r--manifests/subsystem/profile.pp8
-rw-r--r--manifests/subsystem/screen.pp9
-rw-r--r--manifests/subsystem/screen/startup.pp12
-rw-r--r--templates/screen/screenrc.erb (renamed from files/etc/screenrc)8
6 files changed, 36 insertions, 8 deletions
diff --git a/files/etc/rc.local b/files/etc/rc.local
index 4b8a41e..c9a8046 100644
--- a/files/etc/rc.local
+++ b/files/etc/rc.local
@@ -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
diff --git a/manifests/base.pp b/manifests/base.pp
index 88af553..687619d 100644
--- a/manifests/base.pp
+++ b/manifests/base.pp
@@ -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
diff --git a/manifests/subsystem/profile.pp b/manifests/subsystem/profile.pp
index b90ac65..33ddc6a 100644
--- a/manifests/subsystem/profile.pp
+++ b/manifests/subsystem/profile.pp
@@ -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
index 0000000..bcc2450
--- /dev/null
+++ b/manifests/subsystem/screen.pp
@@ -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
index 0000000..ffbec08
--- /dev/null
+++ b/manifests/subsystem/screen/startup.pp
@@ -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,
+ }
+}
diff --git a/files/etc/screenrc b/templates/screen/screenrc.erb
index eb68114..722aabc 100644
--- a/files/etc/screenrc
+++ b/templates/screen/screenrc.erb
@@ -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