NAME := gnexus-creds-extension
VERSION := 0.1.0
SRC := manifest.json src icons lib
BUILD := build
DIST := dist
# UI kit source: the version pinned by the frontend's package-lock.json.
KIT := ../../frontend/node_modules/gnexus-ui-kit/dist
.PHONY: all clean lib chrome firefox
all: chrome firefox
# Materialize lib/ from the frontend's gnexus-ui-kit install. Runs manually
# (fresh clones need it before build); it is not chained to `all:` because
# a newer kit rebuilds zips with different content than the released ones.
lib:
@test -d "$(KIT)" || { echo "gnexus-ui-kit not installed; run (cd ../../frontend && npm install) first"; exit 1; }
rm -rf lib
mkdir -p lib
cp $(KIT)/css/kit.css lib/gnexus-ui-kit.css
cp $(KIT)/js/gnexus-ui-kit.js lib/
cp -r $(KIT)/assets lib/assets
@echo "lib materialized (kit may be newer than the released zips were built with)"
clean:
rm -rf $(BUILD) $(DIST)
$(BUILD)/chrome: $(SRC)
mkdir -p $@
cp -r $(SRC) $@/
node -e "const fs=require('fs'); const m=JSON.parse(fs.readFileSync('$@/manifest.json')); delete m.browser_specific_settings; fs.writeFileSync('$@/manifest.json', JSON.stringify(m,null,2));"
sed -i 's|url("../assets/|url("assets/|g' $@/lib/gnexus-ui-kit.css
sed -i "s|url('/assets/|url('assets/|g" $@/lib/gnexus-ui-kit.css
$(BUILD)/firefox: $(SRC)
mkdir -p $@
cp -r $(SRC) $@/
# Firefox MV3 has no background.service_worker / type:"module":
# bundle api.js + background.js into one classic script and use event-page scripts.
node tools/bundle-background.js $@
node -e "const fs=require('fs'); const p='$@/manifest.json'; const m=JSON.parse(fs.readFileSync(p)); m.background={scripts:['src/background.js']}; fs.writeFileSync(p, JSON.stringify(m,null,2));"
sed -i 's|url("../assets/|url("assets/|g' $@/lib/gnexus-ui-kit.css
sed -i "s|url('/assets/|url('assets/|g" $@/lib/gnexus-ui-kit.css
chrome: $(BUILD)/chrome
mkdir -p $(DIST)
cd $(BUILD)/chrome && zip -r ../../$(DIST)/$(NAME)-chrome-$(VERSION).zip .
firefox: $(BUILD)/firefox
mkdir -p $(DIST)
cd $(BUILD)/firefox && zip -r ../../$(DIST)/$(NAME)-firefox-$(VERSION).zip .