1*50614ebcSStephen Hemminger#! /usr/bin/env python3 2*50614ebcSStephen Hemminger# SPDX-License-Identifier: BSD-3-Clause 3*50614ebcSStephen Hemminger# Copyright (c) 2023 Stephen Hemminger <stephen@networkplumber.org> 4*50614ebcSStephen Hemminger 5*50614ebcSStephen Hemminger""" 6*50614ebcSStephen HemmingerScript to read a text file and convert it into a header file. 7*50614ebcSStephen Hemminger""" 8*50614ebcSStephen Hemmingerimport sys 9*50614ebcSStephen Hemmingerimport os 10*50614ebcSStephen Hemminger 11*50614ebcSStephen Hemminger 12*50614ebcSStephen Hemmingerdef main(): 13*50614ebcSStephen Hemminger '''program main function''' 14*50614ebcSStephen Hemminger print(f'/* File autogenerated by {sys.argv[0]} */') 15*50614ebcSStephen Hemminger for path in sys.argv[1:]: 16*50614ebcSStephen Hemminger name = os.path.basename(path) 17*50614ebcSStephen Hemminger print() 18*50614ebcSStephen Hemminger print(f'/* generated from {name} */') 19*50614ebcSStephen Hemminger with open(path, "r") as f: 20*50614ebcSStephen Hemminger array = name.replace(".", "_") 21*50614ebcSStephen Hemminger print(f'static const char {array}[] = ' + '{') 22*50614ebcSStephen Hemminger line = f.readline() 23*50614ebcSStephen Hemminger 24*50614ebcSStephen Hemminger # make sure empty string is null terminated 25*50614ebcSStephen Hemminger if not line: 26*50614ebcSStephen Hemminger print(' ""') 27*50614ebcSStephen Hemminger 28*50614ebcSStephen Hemminger while line: 29*50614ebcSStephen Hemminger s = repr(line) 30*50614ebcSStephen Hemminger print(' {}'.format(s.replace("'", '"'))) 31*50614ebcSStephen Hemminger line = f.readline() 32*50614ebcSStephen Hemminger print('};') 33*50614ebcSStephen Hemminger 34*50614ebcSStephen Hemminger 35*50614ebcSStephen Hemmingerif __name__ == "__main__": 36*50614ebcSStephen Hemminger main() 37