#!/usr/bin/env python

import argparse
import sys

import prototurk
import prototurk.version


def main():
    parser = argparse.ArgumentParser(
        formatter_class=argparse.ArgumentDefaultsHelpFormatter,
    )
    parser.add_argument('--version', action='version', version=prototurk.version.__version__)
    parser.add_argument('html_file')
    parser.add_argument('csv_file')
    parser.add_argument('csv_row_number', type=int,
                        help='Row number (1-indexed) of CSV file used to populate template')
    parser.add_argument('--output-file', type=str,
                        help='Output file for populated HTML template. Defaults to stdout')
    args = parser.parse_args()

    # HACK: We need to create a ProtoTurkServer instance to set global variables that
    # are accessed by prototurk.server.task_iframe()
    pts = prototurk.ProtoTurkServer(None, None, args.html_file, args.csv_file, None)

    populated_template = prototurk.server.task_iframe(args.csv_row_number - 1)
    if args.output_file:
        open(args.output_file, 'w', encoding='utf-8').write(populated_template)
    else:
        sys.stdout.write(populated_template)


if __name__ == '__main__':
    main()
