Esempio n. 1
0
def query_yes_no(question, default=None):
    if not sys.__stdin__.isatty():
        raise RuntimeError('Terminal is not interactive, cannot ask user "{}"'.format(question))

    if default == None:
        prompt = '[y/n]'
    elif distutils.util.strtobool(default):
        prompt = '[Y/n]'
    else:
        prompt = '[y/N]'

    while True:
        try:
            sys.stderr.write('{} {} '.format(question, prompt))
            sys.stderr.flush()

            answer = getch.getch()

            if answer == '\r':
                answer = default
            elif answer in '\x03\x1B': # Ctrl-C, ESC
                answer = 'no'

            print("'{}'".format(answer))

            return distutils.util.strtobool(answer)
        except ValueError:
            print(colors.colorize_error('Please answer with "y/t" or "n/f"'))
Esempio n. 2
0
File: util.py Progetto: gafnium/rr
def query_yes_no(question, default=None):
    if not sys.__stdin__.isatty():
        raise RuntimeError(
            'Terminal is not interactive, cannot ask user "{}"'.format(
                question))

    if default == None:
        prompt = '[y/n]'
    elif distutils.util.strtobool(default):
        prompt = '[Y/n]'
    else:
        prompt = '[y/N]'

    while True:
        try:
            sys.stderr.write('{} {} '.format(question, prompt))
            sys.stderr.flush()

            answer = getch.getch()

            if answer == '\r':
                answer = default
            elif answer in '\x03\x1B':  # Ctrl-C, ESC
                answer = 'no'

            print("'{}'".format(answer))

            return distutils.util.strtobool(answer)
        except ValueError:
            print(colors.colorize_error('Please answer with "y/t" or "n/f"'))
Esempio n. 3
0
def ask_remote_failed():
    return query_yes_no(colors.colorize_error('Remote command failed. Sync results back? '), 'yes')
Esempio n. 4
0
File: util.py Progetto: gafnium/rr
def ask_remote_failed():
    return query_yes_no(
        colors.colorize_error('Remote command failed. Sync results back? '),
        'yes')