40 lines
906 B
Python
40 lines
906 B
Python
|
#!/usr/bin/env python
|
||
|
# -*- coding: utf-8 -*-
|
||
|
|
||
|
# Deterministic layer json: https://github.com/docker/hub-feedback/issues/488
|
||
|
|
||
|
import sys
|
||
|
reload(sys)
|
||
|
sys.setdefaultencoding('UTF8')
|
||
|
import json
|
||
|
|
||
|
# If any of the keys below are equal to a certain value
|
||
|
# then we can delete it because it's the default value
|
||
|
SAFEDELS = {
|
||
|
"Size": 0,
|
||
|
"config": {
|
||
|
"ExposedPorts": None,
|
||
|
"MacAddress": "",
|
||
|
"NetworkDisabled": False,
|
||
|
"PortSpecs": None,
|
||
|
"VolumeDriver": ""
|
||
|
}
|
||
|
}
|
||
|
SAFEDELS["container_config"] = SAFEDELS["config"]
|
||
|
|
||
|
def makedet(j, safedels):
|
||
|
for k,v in safedels.items():
|
||
|
if k not in j:
|
||
|
continue
|
||
|
if type(v) == dict:
|
||
|
makedet(j[k], v)
|
||
|
elif j[k] == v:
|
||
|
del j[k]
|
||
|
|
||
|
def main():
|
||
|
j = json.load(sys.stdin)
|
||
|
makedet(j, SAFEDELS)
|
||
|
json.dump(j, sys.stdout, sort_keys=True)
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
main()
|