#!/usr/bin/env bash
# Copyright 2014 GSI, Inc. All rights reserved.
#
# Check for payload format option (default is uuencode).
payload_uuencode=1
if [[ "$1" == '--binary' ]]; then
	payload_binary=1
	payload_uuencode=0
	shift
fi
if [[ "$1" == '--uuencode' ]]; then
	payload_binary=0
	payload_uuencode=1
	shift
fi

if [[ ! "$1" ]]; then
	echo "Usage: $0 [--binary | --uuencode] PAYLOAD_FILE INPUT_FILE OUTPUT_FILE"
	exit 1
fi

INPUT_FILE=$2
OUTPUT_FILE=$3
if [ ! -f "$INPUT_FILE" ]; then
	echo "Can't find input file: $INPUT_FILE"
	exit 1
fi
if [ ! -f "$1" ]; then
        echo "Can't find payload file: $1"
        exit 1
fi
if [[ $payload_binary -ne 0 ]]; then
	# Append binary data.
	sed \
		-e 's/payload_uuencode=./payload_uuencode=0/' \
		-e 's/payload_binary=./payload_binary=1/' \
			 $INPUT_FILE >$OUTPUT_FILE
	echo "PAYLOAD:" >> $OUTPUT_FILE

	cat $1 >>$OUTPUT_FILE
fi

if [[ $payload_uuencode -ne 0 ]]; then
	# Append uuencoded data.
        sed \
		-e 's/payload_uuencode=./payload_uuencode=1/' \
		-e 's/payload_binary=./payload_binary=0/' \
			 $INPUT_FILE >$OUTPUT_FILE
	echo "PAYLOAD:" >> $OUTPUT_FILE

	cat $1 | uuencode - >>$OUTPUT_FILE
fi
