#!/bin/bash

CODETARG_NAME=""
OUTPUT_FILE=""

while [ $# -gt 0 ]; do
	case "$1" in
		-m)
			CODETARG_NAME="$2"
			shift 2
			;;
		-o)
			OUTPUT_FILE="$2"
			shift 2
			;;
		--)
			shift
			break
			;;
		*)
			HEADER_FILE="$1"
			shift
			;;
	esac
done

if [ -z "$HEADER_FILE" ]; then
	echo "Usage: $0 [-m <codetarg>] [-o <filename>] <header_file>"
	exit 1
fi

if [ -n "$OUTPUT_FILE" ]; then
	exec > "$OUTPUT_FILE"
fi

if [ -n "$CODETARG_NAME" ]; then
	echo "static char *_${CODETARG_NAME}_kernel_header ="
fi

while IFS= read -r line || [ -n "$line" ]; do
	escaped_line=$(echo "$line" | sed -e 's/\\/\\\\/g' -e 's/\"/\\\"/g')
	echo "\"$escaped_line\\n\""
done < "$HEADER_FILE"

if [ -n "$CODETARG_NAME" ]; then
	echo ";"
fi
