lol

sing-geosite: init at 20230202101858

linsui 99892e9b 815a21e9

+71
+50
pkgs/data/misc/sing-geosite/default.nix
··· 1 + { lib 2 + , buildGoModule 3 + , fetchFromGitHub 4 + , substituteAll 5 + , v2ray-domain-list-community 6 + }: 7 + 8 + let 9 + patch = substituteAll { 10 + src = ./main.go; 11 + geosite_data = "${v2ray-domain-list-community}/share/v2ray/geosite.dat"; 12 + }; 13 + in 14 + buildGoModule rec { 15 + pname = "sing-geosite"; 16 + inherit (v2ray-domain-list-community) version; 17 + 18 + src = fetchFromGitHub { 19 + owner = "SagerNet"; 20 + repo = "sing-geosite"; 21 + rev = "4a32d56c1705f77668beb5828df0b0a051efdeb9"; 22 + hash = "sha256-P/EBcwJI2G9327BNi84R+q6BABx9DEKpN6ETTp8Q4NU="; 23 + }; 24 + 25 + vendorHash = "sha256-uQOmUXT2wd40DwwTCMnFFKd47eu+BPBDjiCGtUNFoKY="; 26 + 27 + patchPhase = '' 28 + sed -i -e '/func main()/,/^}/d' -e '/"io"/a "io/ioutil"' main.go 29 + cat ${patch} >> main.go 30 + ''; 31 + 32 + buildPhase = '' 33 + runHook preBuild 34 + go run -v . 35 + runHook postBuild 36 + ''; 37 + 38 + installPhase = '' 39 + runHook preInstall 40 + install -Dm644 geosite.db $out/share/sing-box/geosite.db 41 + runHook postInstall 42 + ''; 43 + 44 + meta = with lib; { 45 + description = "community managed domain list"; 46 + homepage = "https://github.com/SagerNet/sing-geosite"; 47 + license = licenses.gpl3Plus; 48 + maintainers = with maintainers; [ linsui ]; 49 + }; 50 + }
+19
pkgs/data/misc/sing-geosite/main.go
··· 1 + func main() { 2 + outputFile, err := os.Create("geosite.db") 3 + if err != nil { 4 + panic(err) 5 + } 6 + defer outputFile.Close() 7 + vData, err := ioutil.ReadFile("@geosite_data@") 8 + if err != nil { 9 + panic(err) 10 + } 11 + domainMap, err := parse(vData) 12 + if err != nil { 13 + panic(err) 14 + } 15 + err = geosite.Write(outputFile, domainMap) 16 + if err != nil { 17 + panic(err) 18 + } 19 + }
+2
pkgs/top-level/all-packages.nix
··· 11957 11957 11958 11958 sing-box = callPackage ../tools/networking/sing-box { }; 11959 11959 11960 + sing-geosite = callPackage ../data/misc/sing-geosite { }; 11961 + 11960 11962 sipcalc = callPackage ../tools/networking/sipcalc { }; 11961 11963 11962 11964 skribilo = callPackage ../tools/typesetting/skribilo {