]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - modules/motd/templates/motd.erb
Try new motd
[dsa-puppet.git] / modules / motd / templates / motd.erb
index 7b670c1b4461203728800c250eeb143334818165..29326b47708af6a19f3f01e7a2156d246dfdf3b5 100644 (file)
@@ -2,7 +2,7 @@
 This device is for authorized users only.  All traffic on this device
 is monitored and will be used as evidence for prosecutions.  By using
 this machine you agree to abide by the Debian Machines Usage Policies
-(http://www.debian.org/devel/dmup)
+<URL:http://www.debian.org/devel/dmup>.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -11,6 +11,12 @@ def wrap(s, width=78)
       s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n")
 end
 
+def markup(l)
+  l = l.gsub(/\[\[(.*?)\|(.*?)\]\]/, '\2')
+  l = l.gsub(/\[\[(\*|-)?(.*?)\]\]/, '\2')
+  return l
+end
+
 purp = ''
 if nodeinfo.has_key?('nameinfo')
   purp += wrap(nodeinfo['nameinfo']) + "\n\n"
@@ -18,43 +24,77 @@ end
 
 purp += 'Welcome to ' + fqdn
 if (nodeinfo['ldap'].has_key?('purpose'))
-  if nodeinfo['ldap']['purpose'].include?('buildd')
+  p = nodeinfo['ldap']['purpose'].clone()
+  extra = ''
+
+  if p.delete('buildd')
     purp += ", the Debian "
     if nodeinfo['ldap'].has_key?('architecture')
       purp += nodeinfo['ldap']['architecture'][0]
     end
     purp += " build daemon\n"
-  elsif nodeinfo['ldap']['purpose'].include?('porterbox')
+  end
+
+  if p.delete('porterbox')
     purp += ", the Debian "
     if nodeinfo['ldap'].has_key?('architecture')
       purp += nodeinfo['ldap']['architecture'][0]
     end
     purp += " porterbox\n"
-    purp += "\n"
-    purp += "See 'dchroot -l' for a list of available chroots.\n"
+    extra += "\n"
+    extra += "See 'dchroot -l' or 'schroot -l' for a list of available chroots.\n"
     if nodeinfo['ldap'].has_key?('admin')
-      purp += "Please contact #{nodeinfo['ldap']['admin'][0]} for install requests,\n"
-      purp += "following the recommendations in <URL:http://dsa.debian.org/doc/install-req/>.\n"
+      extra += "Please contact #{nodeinfo['ldap']['admin'][0]} for install requests,\n"
+      extra += "following the recommendations in <URL:http://dsa.debian.org/doc/install-req/>.\n"
     end
-  else
+  end
+
+  if p.size() > 0
     purp += ", used for the following services:\n"
     nodeinfo['ldap']['purpose'].sort.each do |l|
-      if l =~ /\[\[(\*|-)?(.*?)\]\]/
-        l = $2
-      end
-      if l =~ /\[\[(.*?)\|(.*?)\]\]/
-        l = $2
-      end
+      l = markup(l)
       purp += "\t" + l + "\n"
     end
+  else
+    purp += ".\n"
   end
+
+  purp += extra
 else
-  purp += "\n"
+  purp += ".\n"
 end
 
 if (nodeinfo['ldap'].has_key?('physicalHost'))
-  purp += "\nThis virtual server runs on the physical host #{nodeinfo['ldap']['physicalHost'][0]}.\n"
+  purp += wrap("This virtual server runs on the physical host #{nodeinfo['ldap']['physicalHost'][0]}." +
+               "It is hosted at #{nodeinfo['hoster']['longname']}."
+               )
+elsif nodeinfo['hoster']['name']
+  purp += wrap("This server is hosted at #{nodeinfo['hoster']['longname']}.")
+end
+
+
+vms = []
+allnodeinfo.keys.sort.each do |node|
+  if allnodeinfo[node]['physicalHost'] and allnodeinfo[node]['physicalHost'].include?(fqdn)
+    vms << node
+  end
 end
+unless vms.empty?
+  purp += "\nThe following virtual machines run on this system:\n"
+  vms.each do |node|
+    purp += "\t- #{node}"
+    if allnodeinfo[node]['purpose']
+      purp += ":\n"
+      allnodeinfo[node]['purpose'].sort.each do |l|
+        l = markup(l)
+        purp += "\t    " + l + "\n"
+      end
+    else
+      purp += "\n"
+    end
+  end
+end
+
 
 if nodeinfo.has_key?('footer')
   purp += "\n" + wrap(nodeinfo['footer']) + "\n"