SOURCES: VMware-server-parse-locations.pl (NEW) - simple locations...

glen glen at pld-linux.org
Tue Apr 8 07:15:30 CEST 2008


Author: glen                         Date: Tue Apr  8 05:15:30 2008 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- simple locations db parser

---- Files affected:
SOURCES:
   VMware-server-parse-locations.pl (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/VMware-server-parse-locations.pl
diff -u /dev/null SOURCES/VMware-server-parse-locations.pl:1.1
--- /dev/null	Tue Apr  8 07:15:31 2008
+++ SOURCES/VMware-server-parse-locations.pl	Tue Apr  8 07:15:25 2008
@@ -0,0 +1,53 @@
+#!/usr/bin/perl -w
+# $Id$
+# process vmware locations database
+# filter the database and keep only single answers not the complete log
+
+use strict;
+
+my (%files, %dirs, %answer, %config);
+while (<>) {
+	chomp;
+	next if /^$/ or /^#/;
+	my ($cmd, $args) = split(/ /, $_, 2);
+	my ($key, $value) = split(/ /, $args, 2);
+	$files{$key} = $value,next if $cmd eq 'file';
+	$config{$key} = 1,next if $cmd eq 'config';
+	$dirs{$args} = 1,next if $cmd eq 'directory';
+	$answer{$key} = $value,next if $cmd eq 'answer';
+	delete $answer{$key},next if $cmd eq 'remove_answer';
+	delete $files{$key},next if $cmd eq 'remove_file';
+	warn "unknown config stub: [$cmd]\n";
+}
+
+foreach my $key (sort keys %answer) {
+	my $value = $answer{$key};
+	printf("answer %s %s\n", $key, $value);
+}
+
+while (my($key, $value) = each %dirs) {
+	printf("directory %s\n", $key);
+}
+
+while (my($key, $value) = each %files) {
+	if ($value) {
+		printf("file %s %s\n", $key, $value);
+	} else {
+		printf("file %s\n", $key);
+	}
+}
+while (my($key, $value) = each %files) {
+	if ($value) {
+		printf("file %s %s\n", $key, $value);
+	} else {
+		printf("file %s\n", $key);
+	}
+	if (exists $config{$key}) {
+		printf("config %s\n", $key);
+		delete $config{$key};
+	}
+}
+
+while (my($key, $value) = each %config) {
+	printf("config %s\n", $key);
+}
================================================================


More information about the pld-cvs-commit mailing list