mk_cfgrpt.sh 1.54 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
#!/bin/sh
# Copyright (C) 2015  Internet Systems Consortium, Inc. ("ISC")
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
# copyright notice and this permission notice appear in all copies.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
# This script embeds config.report into src/bin/cfgrpt/config_report.cc
# Called by configure
#

20 21
report_file="$1"
dest="$2"
22 23 24 25 26 27

if [ -z ${report_file} ]
then
    echo "ERROR mk_cfgrpt.sh - input report: $report_file does not exist"
    exit -1
fi
28 29

# Initializes
30 31 32 33 34 35
cat /dev/null > $dest
if [ $? -ne 0 ]
then
    echo "ERROR mk_cfgrpt.sh - cannot create config output file: $dest"
    exit -1
fi
36 37 38

# Header
cat >> $dest << END
39
// config_report.cc. Generated from config.report by tools/mk_cfgrpt.sh
40 41 42 43 44 45 46 47 48

namespace isc {
namespace detail {

extern const char* const config_report[] = {
END

# Body: escape '\'s and '"'s, preprend '    ";;;; ' and append '",'
sed -e 's/\\/\\\\/g' -e 's/"/\\"/g' -e 's/^/    ";;;; /' -e 's/$/",/' \
49
    < $report_file >> $dest
50 51 52 53 54 55 56 57 58

# Trailer
cat >> $dest <<END
    ""
};

}
}
END