Fixes an issue with missing git hash in version metadata of built fonts. Closes #234
This commit is contained in:
parent
4519bffb7c
commit
cd4e4bca3a
5 changed files with 27 additions and 47 deletions
16
Makefile
16
Makefile
|
|
@ -46,9 +46,11 @@ web: all_web
|
||||||
|
|
||||||
all_const: all_otf all_ttf all_web
|
all_const: all_otf all_ttf all_web
|
||||||
all_const_hinted: all_ttf_hinted all_web_hinted
|
all_const_hinted: all_ttf_hinted all_web_hinted
|
||||||
var: \
|
var: var_text var_display
|
||||||
|
var_text: \
|
||||||
$(FONTDIR)/var/Inter.var.woff2 \
|
$(FONTDIR)/var/Inter.var.woff2 \
|
||||||
$(FONTDIR)/var/Inter.var.otf \
|
$(FONTDIR)/var/Inter.var.otf
|
||||||
|
var_display: \
|
||||||
$(FONTDIR)/var/InterDisplay.var.woff2 \
|
$(FONTDIR)/var/InterDisplay.var.woff2 \
|
||||||
$(FONTDIR)/var/InterDisplay.var.otf
|
$(FONTDIR)/var/InterDisplay.var.otf
|
||||||
all_var: \
|
all_var: \
|
||||||
|
|
@ -73,7 +75,7 @@ all_var: \
|
||||||
# all_var_hinted: $(FONTDIR)/var-hinted/Inter.var.otf $(FONTDIR)/var-hinted/Inter.var.woff2
|
# all_var_hinted: $(FONTDIR)/var-hinted/Inter.var.otf $(FONTDIR)/var-hinted/Inter.var.woff2
|
||||||
# .PHONY: all_var_hinted
|
# .PHONY: all_var_hinted
|
||||||
|
|
||||||
.PHONY: all_const all_const_hinted var all_var
|
.PHONY: all_const all_const_hinted var var_text var_display all_var
|
||||||
|
|
||||||
export PATH := $(PWD)/build/venv/bin:$(PATH)
|
export PATH := $(PWD)/build/venv/bin:$(PATH)
|
||||||
|
|
||||||
|
|
@ -97,23 +99,23 @@ build/%.woff: build/%.ttf
|
||||||
|
|
||||||
|
|
||||||
# VF OTF from UFO
|
# VF OTF from UFO
|
||||||
$(FONTDIR)/var/Inter.var.otf: $(all_ufo_masters) version.txt
|
$(FONTDIR)/var/Inter.var.otf: $(all_ufo_masters_text) version.txt
|
||||||
misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) build/ufo/Inter.designspace
|
misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) build/ufo/Inter.designspace
|
||||||
|
|
||||||
$(FONTDIR)/var/Inter-V.var.otf: $(FONTDIR)/var/Inter.var.otf
|
$(FONTDIR)/var/Inter-V.var.otf: $(FONTDIR)/var/Inter.var.otf
|
||||||
misc/fontbuild rename --family "Inter V" -o $@ $<
|
misc/fontbuild rename --family "Inter V" -o $@ $<
|
||||||
|
|
||||||
$(FONTDIR)/var/Inter-%.var.otf: build/ufo/Inter-%.designspace $(all_ufo_masters) version.txt
|
$(FONTDIR)/var/Inter-%.var.otf: build/ufo/Inter-%.designspace $(all_ufo_masters_text) version.txt
|
||||||
misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) $<
|
misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) $<
|
||||||
misc/tools/fix-vf-meta.py $@
|
misc/tools/fix-vf-meta.py $@
|
||||||
|
|
||||||
$(FONTDIR)/var/InterDisplay.var.otf: $(all_display_ufo_masters) version.txt
|
$(FONTDIR)/var/InterDisplay.var.otf: $(all_ufo_masters_display) version.txt
|
||||||
misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) build/ufo/InterDisplay.designspace
|
misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) build/ufo/InterDisplay.designspace
|
||||||
|
|
||||||
$(FONTDIR)/var/InterDisplay-V.var.otf: $(FONTDIR)/var/InterDisplay.var.otf
|
$(FONTDIR)/var/InterDisplay-V.var.otf: $(FONTDIR)/var/InterDisplay.var.otf
|
||||||
misc/fontbuild rename --family "Inter Display V" -o $@ $<
|
misc/fontbuild rename --family "Inter Display V" -o $@ $<
|
||||||
|
|
||||||
$(FONTDIR)/var/InterDisplay-%.var.otf: build/ufo/InterDisplay-%.designspace $(all_display_ufo_masters) version.txt
|
$(FONTDIR)/var/InterDisplay-%.var.otf: build/ufo/InterDisplay-%.designspace $(all_ufo_masters_display) version.txt
|
||||||
misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) $<
|
misc/fontbuild compile-var -o $@ $(FONTBUILD_FLAGS) $<
|
||||||
misc/tools/fix-vf-meta.py $@
|
misc/tools/fix-vf-meta.py $@
|
||||||
|
|
||||||
|
|
|
||||||
6
init.sh
6
init.sh
|
|
@ -454,9 +454,13 @@ else
|
||||||
echo ")" >> "$GEN_MAKE_FILE"
|
echo ")" >> "$GEN_MAKE_FILE"
|
||||||
echo -e "\t@touch \"\$@\"" >> "$GEN_MAKE_FILE"
|
echo -e "\t@touch \"\$@\"" >> "$GEN_MAKE_FILE"
|
||||||
done
|
done
|
||||||
echo -n "all_ufo_masters :=" >> "$GEN_MAKE_FILE"
|
echo -n "all_ufo_masters_text :=" >> "$GEN_MAKE_FILE"
|
||||||
for style in "${master_styles[@]}"; do
|
for style in "${master_styles[@]}"; do
|
||||||
echo -n " build/ufo/Inter-${style}.ufo" >> "$GEN_MAKE_FILE"
|
echo -n " build/ufo/Inter-${style}.ufo" >> "$GEN_MAKE_FILE"
|
||||||
|
done
|
||||||
|
echo "" >> "$GEN_MAKE_FILE"
|
||||||
|
echo -n "all_ufo_masters_display :=" >> "$GEN_MAKE_FILE"
|
||||||
|
for style in "${master_styles[@]}"; do
|
||||||
echo -n " build/ufo/InterDisplay-${style}.ufo" >> "$GEN_MAKE_FILE"
|
echo -n " build/ufo/InterDisplay-${style}.ufo" >> "$GEN_MAKE_FILE"
|
||||||
done
|
done
|
||||||
echo "" >> "$GEN_MAKE_FILE"
|
echo "" >> "$GEN_MAKE_FILE"
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ from glyphsLib.interpolation import apply_instance_data
|
||||||
|
|
||||||
from fontbuildlib import FontBuilder
|
from fontbuildlib import FontBuilder
|
||||||
from fontbuildlib.util import mkdirs, loadTTFont
|
from fontbuildlib.util import mkdirs, loadTTFont
|
||||||
from fontbuildlib.info import setFontInfo, updateFontVersion
|
from fontbuildlib.info import setFontInfo
|
||||||
from fontbuildlib.name import setFamilyName, renameStylesGoogleFonts
|
from fontbuildlib.name import setFamilyName, renameStylesGoogleFonts
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
|
|
|
||||||
|
|
@ -1,39 +1,11 @@
|
||||||
import subprocess
|
import subprocess
|
||||||
import re
|
import re
|
||||||
|
import sys
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from common import getGitHash, getVersion
|
from common import getGitHash, getVersion
|
||||||
from .util import readTextFile, BASEDIR, pjoin
|
from .util import readTextFile, BASEDIR, pjoin
|
||||||
|
|
||||||
|
|
||||||
_gitHash = None
|
|
||||||
def getGitHash():
|
|
||||||
global _gitHash
|
|
||||||
if _gitHash is None:
|
|
||||||
_gitHash = ''
|
|
||||||
try:
|
|
||||||
_gitHash = subprocess.check_output(
|
|
||||||
['git', '-C', BASEDIR, 'rev-parse', '--short', 'HEAD'],
|
|
||||||
stderr=subprocess.STDOUT,
|
|
||||||
**_enc_kwargs
|
|
||||||
).strip()
|
|
||||||
except:
|
|
||||||
try:
|
|
||||||
# git rev-parse --short HEAD > githash.txt
|
|
||||||
_gitHash = readTextFile(pjoin(BASEDIR, 'githash.txt')).strip()
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return _gitHash
|
|
||||||
|
|
||||||
|
|
||||||
_version = None
|
|
||||||
def getVersion():
|
|
||||||
global _version
|
|
||||||
if _version is None:
|
|
||||||
_version = readTextFile(pjoin(BASEDIR, 'version.txt')).strip()
|
|
||||||
return _version
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def updateFontVersion(font, dummy, isVF):
|
def updateFontVersion(font, dummy, isVF):
|
||||||
if dummy:
|
if dummy:
|
||||||
version = "1.0"
|
version = "1.0"
|
||||||
|
|
@ -41,8 +13,11 @@ def updateFontVersion(font, dummy, isVF):
|
||||||
now = datetime(2016, 1, 1, 0, 0, 0, 0)
|
now = datetime(2016, 1, 1, 0, 0, 0, 0)
|
||||||
else:
|
else:
|
||||||
version = getVersion()
|
version = getVersion()
|
||||||
buildtag = getGitHash()
|
buildtag, buildtagErrs = getGitHash()
|
||||||
now = datetime.utcnow()
|
now = datetime.utcnow()
|
||||||
|
if buildtag == "" or len(buildtagErrs) > 0:
|
||||||
|
buildtag = "src"
|
||||||
|
print("warning: getGitHash() failed: %r" % buildtagErrs, file=sys.stderr)
|
||||||
versionMajor, versionMinor = [int(num) for num in version.split(".")]
|
versionMajor, versionMinor = [int(num) for num in version.split(".")]
|
||||||
font.info.version = version
|
font.info.version = version
|
||||||
font.info.versionMajor = versionMajor
|
font.info.versionMajor = versionMajor
|
||||||
|
|
|
||||||
|
|
@ -36,23 +36,22 @@ def readTextFile(filename):
|
||||||
|
|
||||||
|
|
||||||
_gitHash = None
|
_gitHash = None
|
||||||
def getGitHash():
|
_gitHashErrs = []
|
||||||
|
def getGitHash(): # returns tuple (hash :string, errors :string[])
|
||||||
global _gitHash
|
global _gitHash
|
||||||
if _gitHash is None:
|
if _gitHash is None:
|
||||||
_gitHash = ''
|
_gitHash = ''
|
||||||
|
args = ['git', '-C', BASEDIR, 'rev-parse', '--short', 'HEAD']
|
||||||
try:
|
try:
|
||||||
_gitHash = subprocess.check_output(
|
_gitHash = subprocess.check_output(args, stderr=subprocess.STDOUT, **_enc_kwargs).strip()
|
||||||
['git', '-C', BASEDIR, 'rev-parse', '--short', 'HEAD'],
|
|
||||||
stderr=subprocess.STDOUT,
|
|
||||||
**_enc_kwargs
|
|
||||||
).strip()
|
|
||||||
except:
|
except:
|
||||||
|
_gitHashErrs.append(sys.exc_info()[0])
|
||||||
try:
|
try:
|
||||||
# git rev-parse --short HEAD > githash.txt
|
# git rev-parse --short HEAD > githash.txt
|
||||||
_gitHash = readTextFile(pjoin(BASEDIR, 'githash.txt')).strip()
|
_gitHash = readTextFile(pjoin(BASEDIR, 'githash.txt')).strip()
|
||||||
except:
|
except:
|
||||||
pass
|
_gitHashErrs.append(sys.exc_info()[0])
|
||||||
return _gitHash
|
return (_gitHash, _gitHashErrs)
|
||||||
|
|
||||||
|
|
||||||
_version = None
|
_version = None
|
||||||
|
|
|
||||||
Reference in a new issue