+++ /dev/null
-#! /usr/bin/perl -w
-
-use strict;
-use warnings;
-
-use Cwd qw/getcwd realpath/;
-use File::Basename;
-use File::Find;
-use File::Temp qw/tempfile/;
-
-my $ossec_regex_convert = realpath(dirname($0) . '/../src/ossec-regex-convert');
-
-sub get_install_dir () {
- open(FILE, '<', 'src/LOCATION') || die("Cannot find INSTALL DIR");
- my $dir = '/var/ossec';
-
- while (<FILE>) {
- if (m{^DIR\s*=\s*(["']?)(.*)\g1$}p) {
- $dir = $2;
- last;
- }
- }
-
- return $dir;
-}
-
-my $old_tags = join('|', split(/\n/m, `$ossec_regex_convert -t`));
-
-sub convert_file ($) {
- my $filename = shift();
- print("Converting ${filename}...\n");
-
- unless (open(SRC, '<', $filename)) {
- print(STDERR "Cannot read '${filename}'\n");
- return;
- }
- my ($tmp_fh, $tmp_filename) = tempfile('tmp-ossec-config-convert.XXXXX', DIR => '/tmp', SUFFIX => '.xml');
-
- while (<SRC>) {
- if (m{^(\s*)<\s*($old_tags)([^>]*)>(.*?)<\s*/\s*\g2\s*>}pg) {
- my ($indent, $old_type, $options, $old_regex) = ($1, $2, $3, $4);
- $old_regex =~ s/'/'\\''/g;
- my $out = qx/$ossec_regex_convert -b -- $old_type '$old_regex'/;
- chomp($out);
- my ($type, $regex) = split(/ /, $out, 2);
- if ($old_regex) {
- print($tmp_fh "$indent<$type$options>$regex</$type>\n");
- } else {
- print($tmp_fh "$indent<$type$options></$type>\n");
- }
- } else {
- print($tmp_fh $_);
- }
- }
-
- close(SRC);
- close($tmp_fh);
-
- rename($tmp_filename, $filename);
-}
-
-sub wanted() {
- my $filename = $File::Find::name;
-
- if ($filename =~ m/[.]xml$/) {
- convert_file($filename);
- }
-}
-
-my $INSTALL_DIR = get_install_dir();
-if (! -d ${INSTALL_DIR}) {
- print(STDERR "Please install OSSEC first\n");
- exit(1);
-}
-
-find({wanted => \&wanted, no_chdir => 1}, $INSTALL_DIR);
-
-exit(0);