Files

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"