File: loganalyzer.php

package info (click to toggle)
simplesamlphp 1.19.7-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 42,920 kB
  • sloc: php: 202,044; javascript: 14,867; xml: 2,700; sh: 225; perl: 82; makefile: 70; python: 5
file content (88 lines) | stat: -rwxr-xr-x 2,034 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/env php
<?php

// This is the base directory of the SimpleSAMLphp installation
$baseDir = dirname(dirname(dirname(dirname(__FILE__))));

// Add library autoloader.
require_once($baseDir . '/lib/_autoload.php');

// Initialize the configuration.
$configdir = \SimpleSAML\Utils\Config::getConfigDir();
\SimpleSAML\Configuration::setConfigDir($configdir);
\SimpleSAML\Utils\Time::initTimezone();

$progName = array_shift($argv);
$debug = false;
$dryrun = false;

foreach ($argv as $a) {
    if (strlen($a) === 0) {
        continue;
    }
    if (strpos($a, '=') !== false) {
        $p = strpos($a, '=');
        $v = substr($a, $p + 1);
        $a = substr($a, 0, $p);
    } else {
        $v = null;
    }

    // Map short options to long options.
    $shortOptMap = ['-d' => '--debug'];
    if (array_key_exists($a, $shortOptMap)) {
        $a = $shortOptMap[$a];
    }
    switch ($a) {
        case '--help':
            printHelp();
            exit(0);
        case '--debug':
            $debug = true;
            break;
        case '--dry-run':
            $dryrun = true;
            break;
        default:
            echo 'Unknown option: ' . $a . "\n";
            echo 'Please run `' . $progName . ' --help` for usage information.' . "\n";
            exit(1);
    }
}

$aggregator = new \SimpleSAML\Module\statistics\Aggregator(true);
$aggregator->dumpConfig();
$aggregator->debugInfo();
$results = $aggregator->aggregate($debug);
$aggregator->debugInfo();

if (!$dryrun) {
    $aggregator->store($results);
}

foreach ($results as $slot => $val) {
    foreach ($val as $sp => $no) {
        echo $sp . " " . count($no) . " - ";
    }
    echo "\n";
}


/**
 * This function prints the help output.
 * @return void
 */
function printHelp()
{
    global $progName;

    echo <<<END
Usage: $progName [options]

This program parses and aggregates SimpleSAMLphp log files.

Options:
 -d, --debug			Used when configuring the log file syntax. See doc.
 --dry-run			Aggregate but do not store the results.
END;
}