1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#!/usr/bin/python
# Copyright (C) 2021-2022 Daiki Ueno
# SPDX-License-Identifier: LGPL-2.1-or-later
import argparse
import cligen.package
import cligen.types
import cligen.code
import json
parser = argparse.ArgumentParser(description='generate option parsing code')
parser.add_argument('json', type=argparse.FileType('r'))
parser.add_argument('c', type=argparse.FileType('w'))
parser.add_argument('h', type=argparse.FileType('w'))
parser.add_argument('--package', help='package', required=True)
parser.add_argument('--version', help='version', required=True)
parser.add_argument('--license', help='license')
parser.add_argument('--authors', help='authors')
parser.add_argument('--copyright-year', help='copyright year')
parser.add_argument('--copyright-holder', help='copyright holder')
parser.add_argument('--bug-email', help='bug report email address')
args = parser.parse_args()
kwargs = {
'name': args.package,
'version': args.version
}
if args.license:
kwargs['license'] = args.license
if args.copyright_year:
kwargs['copyright_year'] = args.copyright_year
if args.copyright_holder:
kwargs['copyright_holder'] = args.copyright_holder
if args.bug_email:
kwargs['bug_email'] = args.bug_email
info = cligen.package.Info(**kwargs)
desc = cligen.types.Desc.from_json(json.load(args.json))
cligen.code.generate_source(desc, info, args.c)
cligen.code.generate_header(desc, info, args.h)
|