From 3e1fc7ac1e1dc76ad704c0fff7a47d72ac7a9d5d Mon Sep 17 00:00:00 2001 From: Serval Date: Thu, 3 Oct 2019 03:05:07 +0800 Subject: v2ray: init at 4.21.3 --- pkgs/tools/networking/v2ray/update.sh | 57 +++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 pkgs/tools/networking/v2ray/update.sh (limited to 'pkgs/tools/networking/v2ray/update.sh') diff --git a/pkgs/tools/networking/v2ray/update.sh b/pkgs/tools/networking/v2ray/update.sh new file mode 100755 index 000000000000..a7bd40bc2e58 --- /dev/null +++ b/pkgs/tools/networking/v2ray/update.sh @@ -0,0 +1,57 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl jq vgo2nix +set -eo pipefail + +version_nix=$(dirname "$0")/default.nix +deps_nix=$(dirname "$0")/deps.nix + +old_core_rev="v$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$version_nix")" +old_geoip_rev=$(sed -En 's/.*\bgeoipRev = "(.*?)".*/\1/p' "$version_nix") +old_geosite_rev=$(sed -En 's/.*\bgeositeRev = "(.*?)".*/\1/p' "$version_nix") +echo "Current version:" >&2 +echo "core: $old_core_rev, geoip: $old_geoip_rev, geosite: $old_geosite_rev" >&2 + +function fetch_latest_rev { + curl "https://api.github.com/repos/v2ray/$1/releases" | + jq '.[0].tag_name' --raw-output +} + +core_rev=$(fetch_latest_rev 'v2ray-core') +geoip_rev=$(fetch_latest_rev 'geoip') +geosite_rev=$(fetch_latest_rev 'domain-list-community') +echo "Latest version:" >&2 +echo "core: $core_rev, geoip: $geoip_rev, geosite: $geosite_rev" >&2 + +if [[ $core_rev != $old_core_rev ]]; then + echo "Prefetching core..." >&2 + { read hash; read store_path; } < <( + nix-prefetch-url --unpack --print-path "https://github.com/v2ray/v2ray-core/archive/$core_rev.zip" + ) + + echo "Generating deps.nix..." >&2 + # `outfile` is required to be absolute path + vgo2nix -dir "$store_path" -outfile "$(realpath "$deps_nix")" + + sed --in-place \ + -e "s/\bversion = \".*\"/version = \"$(echo "$core_rev" | tail -c+2)\"/" \ + -e "s/\bsha256 = \".*\"/sha256 = \"$hash\"/" \ + "$version_nix" +fi + +if [[ $geoip_rev != $old_geoip_rev ]]; then + echo "Prefetching geoip..." >&2 + hash=$(nix-prefetch-url "https://github.com/v2ray/geoip/releases/download/$geoip_rev/geoip.dat") + sed --in-place \ + -e "s/\bgeoipRev = \".*\"/geoipRev = \"$geoip_rev\"/" \ + -e "s/\bgeoipSha256 = \".*\"/geoipSha256 = \"$hash\"/" \ + "$version_nix" +fi + +if [[ $geosite_rev != $old_geosite_rev ]]; then + echo "Prefetching geosite..." >&2 + hash=$(nix-prefetch-url "https://github.com/v2ray/domain-list-community/releases/download/$geosite_rev/dlc.dat") + sed --in-place \ + -e "s/\bgeositeRev = \".*\"/geositeRev = \"$geosite_rev\"/" \ + -e "s/\bgeositeSha256 = \".*\"/geositeSha256 = \"$hash\"/" \ + "$version_nix" +fi -- cgit 1.4.1