[package] Fixed potential dereference of nullptr
[platform/core/api/webapi-plugins.git] / tools / generate_api.py
1 #!/usr/bin/env python2
2 # -*- coding: utf-8 -*-
3
4 # Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
5 #
6 #    Licensed under the Apache License, Version 2.0 (the "License");
7 #    you may not use this file except in compliance with the License.
8 #    You may obtain a copy of the License at
9 #
10 #        http://www.apache.org/licenses/LICENSE-2.0
11 #
12 #    Unless required by applicable law or agreed to in writing, software
13 #    distributed under the License is distributed on an "AS IS" BASIS,
14 #    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 #    See the License for the specific language governing permissions and
16 #    limitations under the License.
17
18 import os
19 import sys
20 import argparse
21 import mergejs
22
23
24 TEMPLATE = """\
25 extern const char {}[];
26 const char {}[] = {{ {}, 0 }};
27 """
28
29
30 def encode(text):
31     return ', '.join(str(ord(c)) for c in text)
32
33
34 def generate_cpp_code(input_file, symbol):
35     code = mergejs.process_file(input_file)
36     return TEMPLATE.format(symbol, symbol, encode(code))
37
38
39 if __name__ == '__main__':
40     parser = argparse.ArgumentParser()
41     parser.add_argument("input", help="input js file path")
42     parser.add_argument("symbol", help="symbol name to use")
43     parser.add_argument("output", help="output file path")
44     opts = parser.parse_args()
45
46     with open(opts.output, "w") as output:
47         cpp = generate_cpp_code(opts.input, opts.symbol)
48         output.write(cpp)
49