#!/usr/bin/env python3

import os
import random
import sys


questions_filepath = f"{os.environ['SCRIPTS']}/writing/character-questions.md"


def print_usage():
    print(f"{sys.argv[0]} COUNT\n\nwhere COUNT is the number of questions to retrieve")


def get_question_count() -> int:
    if len(sys.argv) < 2:
        print_usage()
        exit(1)

    try:
        return int(sys.argv[1])
    except ValueError:
        print_usage()
        exit(1)


def get_question_options():
    if not os.path.isfile(questions_filepath):
        print(f"questions file not located at expected location: {questions_filepath}")
        exit(1)

    with open(questions_filepath, "r") as f:
        return [l.strip() for l in f.readlines()]


def get_random_questions():
    count = get_question_count()
    candidates = get_question_options()

    indices = []
    while len(indices) < count:
        r = random.randint(0, len(candidates) - 1)

        if r in indices and not len(candidates) <= count:
            continue

        indices.append(r)

    return [candidates[idx] for idx in indices]


if __name__ == "__main__":
    [print(q) for q in get_random_questions()]