diff --git a/Makefile b/Makefile index 81e29e5..67fcf74 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ build: @mkdir -p out - @python3 build.py -B 2> out/err.log + @python3 build.py -B 2> out/err.log || { echo "Build Failed. Please check out/err.log for detailed information"; false; } @py3clean . install: build diff --git a/src/build/NanumSquareNeo/__init__.py b/src/build/NanumSquareNeo/__init__.py index 57b7845..8c55ef0 100644 --- a/src/build/NanumSquareNeo/__init__.py +++ b/src/build/NanumSquareNeo/__init__.py @@ -3,5 +3,6 @@ patchVersion = 2 # 업데이트 후 캐시를 무시하기 위해서 사용 from . import select as selectGlyphs from .download import download +from .download import isCached from .cacheBuilder import getCachedFont from .patcher import pasteGlyphs diff --git a/src/build/NanumSquareNeo/download.py b/src/build/NanumSquareNeo/download.py index f14cb7d..4ebf310 100644 --- a/src/build/NanumSquareNeo/download.py +++ b/src/build/NanumSquareNeo/download.py @@ -20,3 +20,5 @@ def download(): shutil.rmtree('assets/NanumSquareNeoKr.extract') print(" [OK]") return "assets/NanumSquareNeoKr.ttf" + +def isCached(): return os.path.exists("assets/NanumSquareNeoKr.ttf") diff --git a/src/build/NerdFonts/__init__.py b/src/build/NerdFonts/__init__.py index 303aead..af46eae 100644 --- a/src/build/NerdFonts/__init__.py +++ b/src/build/NerdFonts/__init__.py @@ -1,3 +1,4 @@ from .download import downloadPatcher +from .download import isCached from .download import nerdFonts_Download_Test \ No newline at end of file diff --git a/src/build/NerdFonts/download.py b/src/build/NerdFonts/download.py index bae6779..aa12173 100644 --- a/src/build/NerdFonts/download.py +++ b/src/build/NerdFonts/download.py @@ -18,4 +18,6 @@ def downloadPatcher(): print(" [OK]") return "assets/NerdFontPatcher_extract" +def isCached(): return os.path.exists("assets/NerdFontPatcher_extract") + def nerdFonts_Download_Test(): downloadPatcher() diff --git a/src/build/NotoMono/__init__.py b/src/build/NotoMono/__init__.py index 2cc08b2..f977eb7 100644 --- a/src/build/NotoMono/__init__.py +++ b/src/build/NotoMono/__init__.py @@ -2,6 +2,7 @@ patchVersion = 2 from .download import download +from .download import isCached from . import select as selectGlyphs from .cacheBuilder import getCachedFont from .patcher import pasteGlyphs diff --git a/src/build/NotoMono/download.py b/src/build/NotoMono/download.py index a267482..8413ec8 100644 --- a/src/build/NotoMono/download.py +++ b/src/build/NotoMono/download.py @@ -9,3 +9,5 @@ def download(): if not os.path.exists("assets/NotoMonoCJKkr.otf"): wgetHandler.download(github_NotoSansMonoCJKkr,"assets/NotoMonoCJKkr.otf") return "assets/NotoMonoCJKkr.otf" + +def isCached(): return os.path.exists("assets/NotoMonoCJKkr.otf") diff --git a/src/build/NotoMono/patcher.py b/src/build/NotoMono/patcher.py index 9bb09e1..3b02906 100644 --- a/src/build/NotoMono/patcher.py +++ b/src/build/NotoMono/patcher.py @@ -22,7 +22,7 @@ def pasteGlyphs(target,sourcePath,deselectOriginalGlyphs,EnabledItems,baseSize=5 selectGlyphs.SelectByEnabledList(source,EnabledItems) deselectOriginalGlyphs(source) source.copy() - selectGlyphs.SelectByEnabledList(source,target) + selectGlyphs.SelectByEnabledList(target,EnabledItems) deselectOriginalGlyphs(target) target.paste() diff --git a/src/build/NotoMono/select.py b/src/build/NotoMono/select.py index 74bf70f..fd1e928 100644 --- a/src/build/NotoMono/select.py +++ b/src/build/NotoMono/select.py @@ -27,7 +27,6 @@ def CJKUnifiedIdeographs(font): # CJK Unified Ideograph font.selection.select(selFlag,0x4E00,0x9FFF) - def CJKUnifiedIdeographsExtension(font): font.selection.select(selFlag,0x3400,0x4DBF) # Extension A font.selection.select(selFlag,0x20000,0x2A6DF) # Extension B diff --git a/src/build/build.py b/src/build/build.py index c288284..37ab292 100644 --- a/src/build/build.py +++ b/src/build/build.py @@ -13,10 +13,16 @@ def build(config=None): # 메인 폰트 불러오기 / 에셋 다운로드 kawaii = fontforge.open( KawaiiMonoLoader.getFontPath()) - print("-------------- DOWNLOAD PATCH CONTENTS --------------") + downloadContentHeader = False + def printDownloadContentHeader(): + nonlocal downloadContentHeader + if downloadContentHeader == False: + downloadContentHeader = True + print("-------------- DOWNLOAD PATCH CONTENTS --------------") # 나눔 스퀘어 네오 다운로드 nanumSquareNeo = None if config.get("CopyKoreanGlyphs"): + if not NanumSquareNeoLoader.isCached(): printDownloadContentHeader() nanumSquareNeo = NanumSquareNeoLoader.download() # 노토 모노 다운로드/불러오기 notoMono = None @@ -24,12 +30,14 @@ def build(config=None): config.get("CopyCJKUnifiedIdeographs") or config.get("CopyCJKUnifiedIdeographsExtension") or config.get("CopyCJKCompatibilityIdeographs")): + if not NotoMonoLoader.isCached(): printDownloadContentHeader() notoMono = NotoMonoLoader.download() # Nerd fonts 패치기 다운로드 nerdFontsPatcherPath = None if config.get("NerdFonts"): + if not NerdFontsLoader.isCached(): printDownloadContentHeader() nerdFontsPatcherPath = NerdFontsLoader.downloadPatcher() - print("--------------------- Patching ---------------------") + print("--------------------- Patching ----------------------") # 유지 목록 (덮어쓰기 금지) 만들기 kawaii.selection.all() @@ -64,10 +72,10 @@ def build(config=None): EnabledItems = { "JapaneseGlyphs": config.get("CopyJapaneseGlyphs") or False, "CJKUnifiedIdeographs": config.get("CopyCJKUnifiedIdeographs") or False, - "CJKUnifiedIdeographsExtension": config.get("CopyCJKUnifiedIdeographsExtension"), - "CJKCompatibilityIdeographs": config.get("CopyCJKCompatibilityIdeographs"), + "CJKUnifiedIdeographsExtension": config.get("CopyCJKUnifiedIdeographsExtension") or False, + "CJKCompatibilityIdeographs": config.get("CopyCJKCompatibilityIdeographs") or False, + "Symbols": config.get("CopySymbols") or False, }, - Symbols=config.get("CopySymbols") or False, target=kawaii,baseSize=550, sourcePath=notoMono, deselectOriginalGlyphs = deselectOriginalGlyphs) diff --git a/todo.md b/todo.md index a4b7a93..2e80ee2 100644 --- a/todo.md +++ b/todo.md @@ -4,3 +4,9 @@ 경우가 2가지 있다. 글리프를 x,y 모두 중앙으로 옮겨도 바운딩 박스가 화면을 초과하는 경우. 이 경우 x,y 모두 글리프가 초과하지 못하도록 안쪽으로 들어가게 축소를 넣어준다 (퍼센트 계산 둘다 x,y 한다 그런다음 가장 크게 줄여야 하는 퍼센트를 선택한다) +아 Bold 구현 ㅐ해야하는데 너무 귀찮으니 미래의 내가 해줄꺼라고 믿고 있어 +(미래의 나 오열?) + + + +