#! /usr/bin/perl
# This script updates the simgrid XML file passed as argument (modification in place)
-# It is built to do the conversion incrementally (even if for now, only 2 versions are defined)
+# It is built to do the conversion incrementally.
-# Copyright (C) 2006-2007. The SimGrid team. All rights reserved.
+# Copyright (C) 2006-2010. The SimGrid team. All rights reserved.
#
# This file is part of the SimGrid project. This is free software:
# You can redistribute and/or modify it under the terms of the
use strict;
my $fromversion=-1;
-my $toversion=2;
+my $toversion=3;
my($output_string);
$output_string .= "<?xml version='1.0'?>\n";
$output_string .= "<!DOCTYPE platform SYSTEM \"simgrid.dtd\">\n";
$output_string .= "<platform version=\"$toversion\">\n";
+$output_string .= " <AS id=\"AS0\" routing=\"Full\">\n";
my $line;
while (defined($line = <INPUT>)) {
if ($line =~ s/<platform(_description)? *>//) {
$fromversion = 0;
+ print "version 0\n";
next if !$line =~ /\S/;
- } elsif ($line =~ s/<platform(_description)? *version=['"]?([0-9.]*)["']?>//) {
+ } elsif ($line =~ s/<platform.*version=["]*([0-9.])["]*>//) {
$fromversion = $1;
+ print "version $fromversion\n";
if ($fromversion == $toversion) {
- warn "Input platform file version is already $fromversion. This should be a no-op.\n";
+ die "Input platform file version is already $fromversion. This should be a no-op.\n";
}
if ($fromversion > $toversion) {
die "Input platform file version is more recent than this script (file version: $fromversion; script version: $toversion)\n";
}
}
- if ($fromversion < 2) {
- # The renamings (\b=zero-width word boundary check)
+ if ($fromversion < 2) {
+ # The renamings (\b=zero-width word boundary check)
$line =~ s/\bplatform_description\b/platform/g;
$line =~ s/\bname\b/id/g;
$line =~ s/\bcpu\b/host/g;
$line =~ s/\bnetwork_link\b/link/g;
$line =~ s/\broute_element\b/link:ctn/g;
}
- $output_string .= "$line\n";
+
+ if ($fromversion < 3) {
+ $line =~ s/\blink:ctn\b/link_ctn/g;
+ $line =~ s/\btrace:connect\b/trace_connect/g;
+ $line =~ s/^(.*)<\/platform>(.*)$/ <\/AS>\n<\/platform>/;
+ }
+
+ $output_string .= "$line\n";
}
close INPUT;