clean_json and json_text are working
authorChris Koeritz <fred@gruntose.com>
Wed, 8 Nov 2017 07:10:51 +0000 (02:10 -0500)
committerChris Koeritz <fred@gruntose.com>
Wed, 8 Nov 2017 07:10:51 +0000 (02:10 -0500)
scripts/core/functions.sh
scripts/files/filedump.pl

index cbd9dbe074239fe29a0d22f9a3f2439d228582c7..5771586fb47ed99143b0277aca1093da9085760b 100644 (file)
@@ -743,7 +743,7 @@ return 0
   }
 
   # pretty prints the json files provided as parameters.
-  function json_view()
+  function clean_json()
   {
     if [ -z "$*" ]; then return; fi
     local show_list=()
@@ -760,6 +760,16 @@ return 0
     rm "${show_list[@]}"
   }
 
+  function json_text()
+  {
+    # only print our special headers or text fields.
+    local CR=$'\r'
+    local LF=$'\n'
+    clean_json $* |
+        grep -i "\"text\":\|^=.*" | 
+        sed -e "s/\\\\r/$CR/g" -e "s/\\\\n/\\$LF/g"
+  }
+
   ##############
 
   # NOTE: no more function definitions are allowed after this point.
index 3fa5b0f30e73b4e770feb456b29a9d8aac792361..de91299c081ccff7770a8254a10eb1c689131f4f 100644 (file)
@@ -68,10 +68,14 @@ sub do_dump {
   $shorter_name =~ s/\.txt$//;
   $shorter_name =~ s/_/ /g;
 
-  $dashed_line = $shorter_name;
-  $dashed_line =~ s/./-/g;
-
-  $header_copy =~ s/%1/$shorter_name/;
+  # we're using the extra equals in front as an almost uniquifier for the
+  # header lines.  we then can treat any matching line as a header, although
+  # some input files could trick this heuristic.
+  $munged_name = "= $shorter_name";
+  $dashed_line = $munged_name;
+  $dashed_line =~ s/./=/g;
+
+  $header_copy =~ s/%1/$munged_name/;
   $header_copy =~ s/%2/$dashed_line/g;
 
 ##print $header_copy;