#!/usr/bin/env python
"""The pick_build_dir command selects a build directory

The pick_build_dir command scans the current directory for directories starting
with ``build`` and prompts the user to select one from the list.
"""

from __future__ import print_function

from argparse import ArgumentParser
from os import listdir
from os.path import curdir, isdir
from sys import stderr

from pick import Picker


def main():
    """Main entry point to build-dir.py script."""
    parser = ArgumentParser()
    parser.add_argument('output')
    parser.add_argument('--default', action='store_true')
    args = parser.parse_args()
    directories = []
    for directory in listdir(curdir):
        if isdir(directory) and directory.startswith('build'):
            directories.append(directory)
    if len(directories) == 0:
        print('no build directories found', file=stderr)
        exit(1)
    build_dirs = sorted(directories)
    if args.default:
        build_dir = build_dirs[0]
    else:
        picker = Picker(build_dirs, 'Select a build directory:')
        picker.register_custom_handler(ord(''), lambda _: exit(1))
        build_dir, _ = picker.start()
    with open(args.output, 'w') as output:
        output.write(build_dir)


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        exit(130)