[rt18107] Cleaned up access_pathmap.pl
authorLiam Whalen <liam.whalen@bc.libraries.coop>
Fri, 13 Dec 2013 18:14:43 +0000 (10:14 -0800)
committerLiam Whalen <liam.whalen@bc.libraries.coop>
Fri, 13 Dec 2013 18:19:20 +0000 (10:19 -0800)
I noticed a few problems with access_pathmap.pl after my initial commmit
to master. First, the ability to retrieve all sections was using a space
' ' as a delimeter between the section names, and a space is a valid
input within a section name, so I changed the space to a newline.  As
well, I modified the regex used to edit the section names to strip out [
and ] from the beggining and end of the section names only.  The
previous version removed all occurances of [ and ] from a section name,
which may not be the same thing.

Signed-off-by: Liam Whalen <liam.whalen@bc.libraries.coop>
deployment/access_pathmap.pl
deployment/integrity-checker.pl

index b2cfdae..117e2aa 100755 (executable)
@@ -22,7 +22,9 @@ OPTIONS:
     --config
         Location of INI file for path mappings.
     --component
-        The component of the INI file for which you want the paths
+        The component of the INI file for which you want the paths.
+        If you do not specify a component value then all components
+        (sections) in the INI file are returned.
     --srcpath
         The source path to return the destination path for
 
@@ -42,13 +44,21 @@ if (!$component) {
     while (<$fh>) {
         chomp;
         if ($_ =~ /^\[[^]]+\]$/) {
-            $_ =~ s/[\[\]]//g;
-            push(@components, $_);
+            $_ =~ s/^\[//;
+            $_ =~ s/\]$//;
+            #we use newlines because spaces seem to be valid within an INI file section.
+            #I am not sure if newlines are also valid because I could not find anything
+            #defining the INI section syntax, but I imagine using a newline within an INI
+            #file section declartion is not done very often if it is valid syntax.
+            print "$_\n";
         }
     }
-    print "@components\n";
 } elsif (!$srcpath) {
     foreach my $key (keys $cfg->get_block($component)) {
+        #again we use newlines because spaces can be used within directory names. I belive
+        #it is possible to use a newline in a directory name, but someone would have to be
+        #trying really hard to make things break if they started doing that with the Evergreen
+        #source.
         print $key . "\n";
     }
 } else {
index e9b6e1b..3810d75 100755 (executable)
@@ -80,7 +80,7 @@ HELP
 }
 
 # specify all possible components (--all option);
-@components = split(' ', `./access_pathmap.pl --config $config_file`) if ($all);
+@components = split('\n', `./access_pathmap.pl --config $config_file`) if ($all);
 
 if ($git_output) {
     open (GITOUTPUT, '>>', $git_output) or die "Could not open $git_output: $!\n";