12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/usr/bin/env python3
- #
- # Actions NVRAM properties helper
- #
- # Copyright (c) 2017 Actions Semiconductor Co., Ltd
- #
- # SPDX-License-Identifier: Apache-2.0
- #
- import sys
- PROP_NAME_MAX = 127
- PROP_VALUE_MAX = 1023
- class PropFile:
- def __init__(self, lines):
- self.props = {}
- self.lines = [s.strip() for s in lines]
- self.__to_dict(self.lines)
- def validate_prop(self, name, value):
- if name == '':
- return False
- if len(name) > PROP_NAME_MAX:
- print('PropFile: WARNING: %s name cannot exceed %d bytes.' %
- (name, PROP_NAME_MAX))
- return False
- if len(value) > PROP_VALUE_MAX:
- print('PropFile: WARNING: %s value cannot exceed %d bytes.' %
- (name, PROP_VALUE_MAX))
- return False
- return True
- def __to_dict(self, lines):
- for line in lines:
- if not line or line.startswith("#"):
- continue
- if "=" in line:
- key, value = line.split("=", 1)
- self.set(key, value)
- def get_all(self):
- return self.props
- def get(self, name):
- if name in self.props:
- return self.props[name]
- return ''
- def set(self, name, value):
- name = name.strip()
- value = value.strip()
- if self.validate_prop(name, value):
- self.props[name] = value
- def delete(self, name):
- self.props.pop(name)
- def write(self, filename):
- with open(filename, 'w') as f:
- for key, value in self.props.items():
- f.write(key + '=' + value + '\n')
- f.write('\n')
|