aboutsummaryrefslogtreecommitdiff
path: root/rcc
blob: 1b355f91ea6c574422bcaaf2c4f6b5d1092a0260 (plain)
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
#!/usr/bin/env python3

import argparse
import sys
import rcc_format

if __name__ == "__main__":
    parser = argparse.ArgumentParser(
        description='Simple Resource Compiler for C++20',
        epilog='For more information check --help.',
    )
    mode = parser.add_subparsers(help='mode')

    dump_mode = mode.add_parser('dump',
            formatter_class=argparse.RawDescriptionHelpFormatter,
            description='Create a hexdump of [input](s) to [output]',
            epilog='''The header file will also contain:
 entries - an array of tuples of (input basename, span of data);
     get - a get convience function that will return the span of a supplied basename
All of these are constexpr.''',
    )
    dump_mode.set_defaults(func=rcc_format.dump)
    dump_mode.add_argument('-ns', '--namespace', type=str, default='resources', help='namespace (default: resources)')
    dump_mode.add_argument('input', type=argparse.FileType('rb'), nargs='+', help='input file(s)')
    
    parser.add_argument('-o', '--output', type=argparse.FileType('wt'), default=sys.stdout, help='output header file (default: stdout)')

    args=parser.parse_args()

    args.func(args)