summaryrefslogtreecommitdiffstats
path: root/service/native/backup_manager/config/uniqcheck.pl
diff options
context:
space:
mode:
authorTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2020-11-20 23:36:23 +0900
committerTadao Tanikawa <tanikawa.tadao@jp.panasonic.com>2020-11-22 09:02:55 +0900
commit17cf21bcf8a2e29d2cbcf0a313474d2a4ee44f5d (patch)
tree582a9768558d9eaf261ca5df6136e9de54c95816 /service/native/backup_manager/config/uniqcheck.pl
parent9e86046cdb356913ae026f616e5bf17f6f238aa5 (diff)
Re-organized sub-directory by category
Since all the sub-directories were placed in the first level, created sub-directories, "hal", "module", and "service" for classification and relocated each component. Signed-off-by: Tadao Tanikawa <tanikawa.tadao@jp.panasonic.com> Change-Id: Ifdf743ac0d1893bd8e445455cf0d2c199a011d5c
Diffstat (limited to 'service/native/backup_manager/config/uniqcheck.pl')
-rwxr-xr-xservice/native/backup_manager/config/uniqcheck.pl46
1 files changed, 46 insertions, 0 deletions
diff --git a/service/native/backup_manager/config/uniqcheck.pl b/service/native/backup_manager/config/uniqcheck.pl
new file mode 100755
index 0000000..1470d7c
--- /dev/null
+++ b/service/native/backup_manager/config/uniqcheck.pl
@@ -0,0 +1,46 @@
+#!/usr/bin/perl
+use strict;
+use warnings;
+
+my @checkxpath = ('//item/@name', '//item/@id', '//category/@name');
+
+sub uniqcheck($$)
+{
+ my $xpath = shift(@_);
+ my $list = shift(@_);
+ my %u = ();
+ foreach my $key (@{$list}) {
+ if (exists($u{$key})) {
+ print "detect duplicate $xpath $key\n";
+ exit 1;
+ }
+ $u{$key} = 1;
+ }
+}
+
+sub getlist($$)
+{
+ my $xmlfile = shift(@_);
+ my $xpath = shift(@_);
+
+ $xmlfile =~ s/([\[\]\*\(\)])/\\$1/g;
+
+ open(my $rs, "xmllint --xpath \"$xpath\" $xmlfile |") or die "Cannot open $xmlfile:$!";
+ my $result = join('', <$rs>);
+ close $rs;
+ $result =~ s/^ +//;
+ my @result_array = split(/ +/, $result);
+ return @result_array;
+}
+
+if ($#ARGV < 0 || !(-f $ARGV[0])) {
+ print "No such file or directory.\n";
+ exit 1;
+}
+
+foreach my $xpath (@checkxpath) {
+ my @result_array = getlist($ARGV[0], $xpath);
+ uniqcheck($xpath, \@result_array);
+}
+
+0;