57 lines
1.9 KiB
Bash
57 lines
1.9 KiB
Bash
#!/bin/sh
|
|
# build.sh — merges v2fly/domain-list-community, Loyalsoldier's overlay,
|
|
# hydraponique/roscomvpn-geosite, and your own custom data into one geosite.dat
|
|
#
|
|
# Run inside the provided Docker image (recommended, no local Go/git needed):
|
|
# docker build -t geosite-builder .
|
|
# docker run --rm -v "$(pwd)/output:/work/output" geosite-builder
|
|
#
|
|
# Or locally if you already have Go + git installed:
|
|
# ./build.sh
|
|
|
|
set -eu
|
|
|
|
WORKDIR="$(pwd)/work"
|
|
OUTDIR="$(pwd)/output"
|
|
CUSTOM_DIR="$(pwd)/data-custom"
|
|
|
|
echo "==> Preparing workspace"
|
|
rm -rf "$WORKDIR"
|
|
mkdir -p "$WORKDIR" "$OUTDIR"
|
|
cd "$WORKDIR"
|
|
|
|
echo "==> Cloning v2fly/domain-list-community (base compiler + ~1500 stock categories -"
|
|
echo " already covers openai, anthropic, netflix, whatsapp, discord, signal, paypal,"
|
|
echo " linkedin, reddit, spotify, facebook, instagram, twitter, roblox, binance, bbc,"
|
|
echo " archive, viber, rutracker, speedtest, notion, figma, jetbrains, adobe, intel,"
|
|
echo " autodesk, cursor, vercel, github, google, youtube, telegram, and more)"
|
|
git clone --depth 1 https://github.com/v2fly/domain-list-community.git v2fly
|
|
|
|
echo "==> Cloning hydraponique/roscomvpn-geosite (RU-specific categories)"
|
|
git clone --depth 1 https://github.com/hydraponique/roscomvpn-geosite.git roscomvpn-src
|
|
|
|
echo "==> Merging data directories"
|
|
mkdir -p v2fly/data/roscomvpn v2fly/data/custom
|
|
|
|
cp -r roscomvpn-src/data/. v2fly/data/roscomvpn/
|
|
|
|
# Only genuinely missing from v2fly stock (verified by testing): replicate,
|
|
# avast, cointelegraph, snapchat. Everything else is already covered upstream.
|
|
if [ -d "$CUSTOM_DIR" ]; then
|
|
cp -r "$CUSTOM_DIR/." v2fly/data/custom/
|
|
fi
|
|
|
|
echo "==> Building merged geosite.dat"
|
|
cd v2fly
|
|
go run main.go
|
|
|
|
if [ ! -f dlc.dat ]; then
|
|
echo "ERROR: build did not produce dlc.dat — check output above for errors"
|
|
exit 1
|
|
fi
|
|
|
|
cp dlc.dat "$OUTDIR/geosite.dat"
|
|
|
|
echo "==> Done. Output: $OUTDIR/geosite.dat"
|
|
ls -lh "$OUTDIR/geosite.dat"
|