X-Git-Url: http://git.pld-linux.org/?p=packages%2FVMware-server.git;a=blobdiff_plain;f=VMware-server-parse-locations.pl;fp=VMware-server-parse-locations.pl;h=a1263dd2e119442d8e6931c854386b9292d480fe;hp=0000000000000000000000000000000000000000;hb=8e1d77f918b6aaa621e217634176adc760acbd21;hpb=f1446670c9caa031b13d5221af91628e5120208d diff --git a/VMware-server-parse-locations.pl b/VMware-server-parse-locations.pl new file mode 100755 index 0000000..a1263dd --- /dev/null +++ b/VMware-server-parse-locations.pl @@ -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); +}