Initial commit: merged geosite build pipeline
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user