SCRIPTS_DIR = scripts
URL ?= https://github.com/sc0ty/subsync/releases/download/assets/
URL_LOCAL ?= http://localhost:8000/assets/
URL_ONLINE ?= assets/data/
DICT_DIR = dict
SPEECH_DIR = speech
EXTRA_DIR = extra
ASSET_DIR = assets
SPEC_DIR = specs
DICTS = $(wildcard $(DICT_DIR)/*.dict)
SPEECHES = $(wildcard $(SPEECH_DIR)/*.speech)
EXTRAS = $(wildcard $(EXTRA_DIR)/*.json)
DICT_ASSETS = $(patsubst $(DICT_DIR)/%.dict,$(ASSET_DIR)/dict-%.zip,$(DICTS))
SPEECH_ASSETS = $(patsubst $(SPEECH_DIR)/%.speech,$(ASSET_DIR)/speech-%.zip,$(SPEECHES))
EXTRA_ASSETS = $(patsubst $(EXTRA_DIR)/%.json,$(ASSET_DIR)/%.zip,$(EXTRAS))
ASSETS = $(DICT_ASSETS) $(SPEECH_ASSETS) $(EXTRA_ASSETS)
SIGNS = $(addsuffix .asc,$(ASSETS))
INDEX = assets.json assets_local.json ../web/src/data/assets.json
all: $(ASSETS) $(SIGNS) $(INDEX)
clean:
$(RM) -r $(ASSET_DIR)
$(RM) -r $(SPEC_DIR)
$(RM) $(INDEX)
$(DICT_ASSETS): $(ASSET_DIR)/dict-%.zip: $(DICT_DIR)/%.dict
@mkdir -p $(ASSET_DIR)
zip -q $@ $<
$(SPEECH_ASSETS): $(ASSET_DIR)/speech-%.zip: $(SPEECH_DIR)/%.speech
@mkdir -p $(ASSET_DIR)
zip -q --recurse-paths $@ $< $(addprefix $(SPEECH_DIR)/,$(notdir $(shell jq -cr .dir $<)))
$(EXTRA_ASSETS): $(ASSET_DIR)/%.zip: $(EXTRA_DIR)/%.zip $(EXTRA_DIR)/%.json
@mkdir -p $(ASSET_DIR)
cp $< $@
$(SIGNS): %.asc: %
$(SCRIPTS_DIR)/sign.py $< $@ key.pem
assets.json: $(ASSETS) $(SIGNS)
$(SCRIPTS_DIR)/mkindex.py $(URL) $(ASSET_DIR) $(EXTRA_DIR) $@
assets_local.json: $(ASSETS) $(SIGNS)
$(SCRIPTS_DIR)/mkindex.py $(URL_LOCAL) $(ASSET_DIR) $(EXTRA_DIR) $@
../web/src/data/assets.json: $(ASSETS) $(SIGNS)
$(SCRIPTS_DIR)/mkindex.py $(URL_ONLINE) $(ASSET_DIR) $@
.PHONY: all clean