master
Raw Download raw file
 1import argparse
 2import asyncio
 3from lib.authorized_key import GithubAuthorizedKeyFile
 4
 5
 6def parse_args():
 7    parser = argparse.ArgumentParser()
 8    parser.add_argument(
 9        "users",
10        metavar="username",
11        type=str,
12        nargs="+",
13        help="Public key source Github usernames",
14    )
15    parser.add_argument(
16        "-a",
17        "--annotate",
18        dest="annotate",
19        action="store_true",
20        help="store public key source details in key annotation",
21    )
22    output_group = parser.add_mutually_exclusive_group()
23    output_group.add_argument(
24        "-O",
25        "--to-stdout",
26        dest="stdout",
27        action="store_true",
28        help="write results to standard output",
29    )
30    output_group.add_argument(
31        "-f", "--file", type=str, default=None, help="store output in FILE"
32    )
33    parser.add_argument(
34        "-u",
35        "--user",
36        type=str,
37        default=None,
38        help="store output for USER",
39    )
40    parser.set_defaults(stdout=False, annotate=False)
41    return parser.parse_args()
42
43
44if __name__ == "__main__":
45    args = parse_args()
46    loop = asyncio.get_event_loop()
47    ak = GithubAuthorizedKeyFile(
48        github_users=args.users,
49        annotate=args.annotate,
50        user=args.user,
51        filename=args.file,
52    )
53    loop.run_until_complete(ak.collect_keys())
54
55    if args.stdout:
56        print(ak.serialize())
57    else:
58        ak.writefile()