#!/bin/bash

set -e

cd "$(dirname "$0")/../builtinFonts"

echo "// The contents of this file are generated by ./lib/EpdFont/scripts/build-font-ids.sh"
echo "#pragma once"
echo ""

echo "#define BOOKERLY_12_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./bookerly_12_regular.h",
  "./bookerly_12_bold.h",
  "./bookerly_12_bolditalic.h",
  "./bookerly_12_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define BOOKERLY_14_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./bookerly_14_regular.h",
  "./bookerly_14_bold.h",
  "./bookerly_14_bolditalic.h",
  "./bookerly_14_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define BOOKERLY_16_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./bookerly_16_regular.h",
  "./bookerly_16_bold.h",
  "./bookerly_16_bolditalic.h",
  "./bookerly_16_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define BOOKERLY_18_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./bookerly_18_regular.h",
  "./bookerly_18_bold.h",
  "./bookerly_18_bolditalic.h",
  "./bookerly_18_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define NOTOSANS_12_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./notosans_12_regular.h",
  "./notosans_12_bold.h",
  "./notosans_12_bolditalic.h",
  "./notosans_12_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define NOTOSANS_14_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./notosans_14_regular.h",
  "./notosans_14_bold.h",
  "./notosans_14_bolditalic.h",
  "./notosans_14_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define NOTOSANS_16_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./notosans_16_regular.h",
  "./notosans_16_bold.h",
  "./notosans_16_bolditalic.h",
  "./notosans_16_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define NOTOSANS_18_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./notosans_18_regular.h",
  "./notosans_18_bold.h",
  "./notosans_18_bolditalic.h",
  "./notosans_18_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define OPENDYSLEXIC_8_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./opendyslexic_8_regular.h",
  "./opendyslexic_8_bold.h",
  "./opendyslexic_8_bolditalic.h",
  "./opendyslexic_8_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define OPENDYSLEXIC_10_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./opendyslexic_10_regular.h",
  "./opendyslexic_10_bold.h",
  "./opendyslexic_10_bolditalic.h",
  "./opendyslexic_10_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define OPENDYSLEXIC_12_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./opendyslexic_12_regular.h",
  "./opendyslexic_12_bold.h",
  "./opendyslexic_12_bolditalic.h",
  "./opendyslexic_12_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define OPENDYSLEXIC_14_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./opendyslexic_14_regular.h",
  "./opendyslexic_14_bold.h",
  "./opendyslexic_14_bolditalic.h",
  "./opendyslexic_14_italic.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define UI_10_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./ubuntu_10_regular.h",
  "./ubuntu_10_bold.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define UI_12_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./ubuntu_12_regular.h",
  "./ubuntu_12_bold.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"

echo "#define SMALL_FONT_ID ($(
ruby -rdigest -e 'puts [
  "./notosans_8_regular.h",
].map{|f| Digest::SHA256.hexdigest(File.read(f)).to_i(16) }.sum % (2 ** 32) - (2 ** 31)'
))"
