master
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()