diff options
Diffstat (limited to 'scripts/convert-schema.sed')
-rw-r--r-- | scripts/convert-schema.sed | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/scripts/convert-schema.sed b/scripts/convert-schema.sed new file mode 100644 index 0000000..55aaadc --- /dev/null +++ b/scripts/convert-schema.sed @@ -0,0 +1,66 @@ +# Generate schema.h from schema.sql. +# +# If this script gets any more complicated, it should probably be +# recoded in Python and have done. +# +# Author: Rob Austein +# Copyright (c) 2015, SUNET +# +# Redistribution and use in source and binary forms, with or +# without modification, are permitted provided that the following +# conditions are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +# Add header. Note that both newlines and leading spaces need to be +# quoted with backslashes, be careful.... +1i\ + /*\ +\ * Automatically generated from schema.sql, edit that file instead of this one.\ +\ */\ +\ + +# Debugging hack: ordinarily we keep all the per-session stuff in the +# "temp" database, but debugging is easier when we let it all go to +# disk. Uncomment these lines to remove all the "TEMPORARY" and +# "temp." qualifiers. +#s/ TEMPORARY / /g +#s/ temp[.]/ /g + +# Delete comment lines, trailing whitespace, and blank lines. +/^[ ]*--/d +s/[ ]*$// +/^$/d + +# Quote backslashes and doublequotes, if any. +s/\\/\\\\/g +s/"/\\"/g + +# Quote each line of text. Literal transcription would be: +# +# s/^.*$/"&\\n"/ +# +# but SQL doesn't need the line breaks, so we can use +# whitespace to generate something a bit more readable. +# +s/^.*$/" &"/ |