#!/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)