#!/usr/bin/env python
"""
Example of how to access more than one connected YubiKey.
"""

import sys
import yubico

def get_all_yubikeys(debug):
    """
    Look for YubiKey with ever increasing `skip' value until an error is returned.

    Return all instances of class YubiKey we got before failing.
    """
    res = []
    try:
        skip = 0
        while skip < 255:
            YK = yubico.find_yubikey(debug = debug, skip = skip)
            res.append(YK)
            skip += 1
    except yubico.yubikey.YubiKeyError:
        pass
    return res

debug = False
if len(sys.argv) > 1:
    debug = (sys.argv[1] == '-v')
keys = get_all_yubikeys(debug)

if not keys:
    print("No YubiKey found.")
else:
    n = 1
    for this in keys:
        print("YubiKey #%02i : %s %s" % (n, this.description, this.status()))
        n += 1
