-
Notifications
You must be signed in to change notification settings - Fork 0
/
jprops2bash.py
executable file
·42 lines (27 loc) · 960 Bytes
/
jprops2bash.py
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
41
42
#!/usr/bin/env python
import collections
import sys
import jprops
def do_replacements(s, mappings):
for old, new in mappings.items():
s = s.replace(old, new)
return s
def key_transform(key):
key = do_replacements(key, {'.': '_',
':': '_',
'-': '_'})
return key.upper()
def value_transform(value):
return do_replacements(value, {"\n": "\\n",
"'": """'"'"'"""})
def jprops2bash(fh, key_transform=key_transform, value_transform=value_transform):
props_dict = jprops.load_properties(fh, collections.OrderedDict)
for key, value in props_dict.items():
key = key_transform(key)
value = value_transform(value)
yield """export {key}='{value}'""".format(key=key, value=value)
def main():
for line in jprops2bash(sys.stdin):
print(line)
if __name__ == '__main__':
sys.exit(main())