#!/usr/bin/perl -w

# Note: this script is expected to run every hour

# First, end the session for any lock files older than 24 hours (1440 minutes)
$output = `find /var/lib/nitrcce/sessions/ -type f -mmin +1440`;
foreach (split (/^/, $output)){
    $lockfile = $_;
    if ($lockfile =~ /sessions\/(.+).lck/){
	$username = $1;
	$cmd = "nitrcce-admin end_session $username";
	`$cmd`;
    }
}

# Second, find those more than 23 hours old and send them a message
$output = `find /var/lib/nitrcce/sessions/ -type f -mmin +1380`;
foreach (split (/^/, $output)){
    $lockfile = $_;
    if ($lockfile =~ /sessions\/(.+).lck/){
	$username = $1;
	$cmd = "nitrcce-admin has_session $username";
	$display = `$cmd`;
	if ($display){
	    chop($display);
	    $cmd = "sudo -u ".$username. " -n -H sh -c \"xmessage -display :$display.0 'Your session will close in one hour.  Please save your work.' 2>&1 </dev/null\"";
	    system("$cmd &");
	}
    }
}

