ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/Deliantra/bin/cfmap-set
Revision: 1.1
Committed: Sat May 15 00:22:27 2010 UTC (14 years ago) by root
Branch: MAIN
CVS Tags: rel-2_01, rel-2_0, HEAD
Log Message:
*** empty log message ***

File Contents

# Content
1 #!/opt/bin/perl
2
3 # Usage: cfmap-set var=value map...
4 # example: cfmap-set music=@tavern **/inn.map
5 # modify the given map header in all maps
6
7 use common::sense;
8
9 use Deliantra;
10 use Deliantra::Map;
11 use Tie::Cache;
12 use Errno;
13
14 (shift) =~ /^(\S+?)=(.*)$/
15 or die "Usage: $0 var=value map...";
16
17 my ($var, $value) = ($1, $2);
18
19 $|=1;
20
21 for my $path (@ARGV) {
22 print "$path... ";
23
24 my $map = new_from_file Deliantra::Map $path
25 or die "$path: file load error\n";
26
27 if ($map->{info}{$var} eq $value) {
28 print "unchanged\n";
29 } else {
30 if (length $value) {
31 $map->{info}{$var} = $value;
32 } else {
33 delete $map->{info}{$var};
34 }
35 $map->write_file ($path);
36 print "updated\n";
37 }
38
39 }
40