fix-dsig.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # Copyright 2013,2016 The Font Bakery Authors
  4. #
  5. # Licensed under the Apache License, Version 2.0 (the "License");
  6. # you may not use this file except in compliance with the License.
  7. # You may obtain a copy of the License at
  8. #
  9. # http://www.apache.org/licenses/LICENSE-2.0
  10. #
  11. # Unless required by applicable law or agreed to in writing, software
  12. # distributed under the License is distributed on an "AS IS" BASIS,
  13. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. # See the License for the specific language governing permissions and
  15. # limitations under the License.
  16. #
  17. # Adapted for the Hack typeface build workflow by Chris Simpkins
  18. import sys
  19. import os
  20. from fontTools import ttLib
  21. def set_empty_dsig(ttFont):
  22. newDSIG = ttLib.newTable("DSIG")
  23. newDSIG.ulVersion = 1
  24. newDSIG.usFlag = 0
  25. newDSIG.usNumSigs = 0
  26. newDSIG.signatureRecords = []
  27. ttFont.tables["DSIG"] = newDSIG
  28. def main(argv):
  29. for path in argv:
  30. if not os.path.exists(path):
  31. sys.stderr.write(
  32. "[fix-dsig.py] ERROR: " +
  33. path +
  34. " is not a valid path to a font file"
  35. )
  36. sys.exit(1)
  37. else:
  38. font = ttLib.TTFont(file=path, recalcTimestamp=False)
  39. set_empty_dsig(font)
  40. font.save(path)
  41. print(path + " - successful DSIG table fix")
  42. if __name__ == '__main__':
  43. main(sys.argv[1:])