r3562@krups: intrigeri | 2005-11-16 20:20:16 +0100
[matthijs/upstream/backupninja.git] / handlers / parseini
diff --git a/handlers/parseini b/handlers/parseini
deleted file mode 100644 (file)
index 6f56d42..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-# 
-# parseini --- parses 'ini' style configuration files.
-#
-# Usage:
-#   awk -f parseini S=<section> P=<param> <ini file>
-#
-# if section is an empty string, then we use the default section
-#
-# example ini file:
-# 
-#              fruit = apple
-#              fruit = pear
-#              multiline = this is a multiline \
-#       parameter
-#
-#       # this is a comment
-#
-#              [colors]  
-#              red = yes
-#              green = no
-#              blue = maybe
-#              
-#              [ocean] 
-#              fish = red 
-#              fish = blue
-#       
-# example usage:
-#       > awk -f parseini S=ocean P=fish testfile.ini 
-# would return: 
-#       red
-#       blue
-#
-   
-BEGIN { 
-    readlines = 1 
-    implied = 1 
-} 
-
-# remove lines starting with #, but not #!
-/^#[^!]/ {next} 
-
-# skip blank
-/^[ \r\t]*$/ {next} 
-
-# we want to read the lines of the matched section
-# and disable for other sections
-/^\[.+\][ \r\t]*$/ { 
-    continueline = 0 
-    if (S && implied) { 
-        nline = 0 
-        implied = 0 
-    } 
-    if (S && match($0, "^\\[" S "\\][ \n]*")) { 
-        # we found the section, so start reading.
-        readlines = 1 
-    } 
-    else { 
-        # no section, so stop reading lines
-        if (readlines) readlines = 0 
-    } 
-    next 
-} 
-
-# when reading, store lines.
-
-{ 
-    if (!readlines) next 
-    line[nline++] = $0 
-    if ($0 ~ /\\[ \r\t]*$/) 
-        continueline = 1 
-    else 
-        continueline = 0 
-} 
-
-# process the read lines lines, matching parameters
-
-END { 
-    # if section is set but implied is still true
-    # then we never found the section, so use everything
-    if (S && implied) { 
-        nline = 0 
-    } 
-
-    # if have P then find P in read lines and get values 
-    if (P) { 
-        MATCH = "^[ \r\t]*" P "[ \r\t]*=" 
-        continueline = 0 
-        for (x = 0; x < nline; ++x) { 
-            v = line[x] 
-            if (continueline) { 
-                sub(/[ \r\t]+$/, "", v) 
-                if (v ~ /\\$/) { 
-                   v = substr(v, 1, length(v)-1) 
-                   sub(/[ \r\t]+$/, "", v) 
-                } 
-                if (v) value[nvalue++] = v 
-            } 
-            else if (v ~ MATCH) { 
-                sub(MATCH, "", v) 
-                sub(/^[ \r\t]+/, "", v) 
-                sub(/[ \r\t]+$/, "", v) 
-                if (v ~ /\\$/) { 
-                    continueline = 1 
-                    v = substr(v, 1, length(v)-1) 
-                    sub(/[ \r\t]+$/, "", v) 
-                } 
-                if (v) value[nvalue++] = v 
-            } 
-        } 
-        # copy parameter definition to output array 
-        nline = nvalue 
-        for (x = 0; x < nvalue; ++x) 
-            line[x] = value[x] 
-    } 
-
-    # trim all leading & trailing whitespace; 
-    # except for leading whitespace in continuation lines, 
-    for (x = 0; x < nline; ++x) { 
-        sub(/^[ \r\t]+/, "", line[x]) 
-        sub(/[ \r\t]+$/, "", line[x]) 
-     } 
-    # output the final result
-    for (x = 0; x < nline; ++x) 
-        print line[x] 
-
-    if (nline) exit 0 
-    else exit 1 
-}