This commit is contained in:
2026-07-24 21:31:46 +08:00
commit eea05fdd63
14 changed files with 2021 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
{
description = "Clash Party, built from source with a reproducible Nix flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
clash-party = {
url = "github:mihomo-party-org/clash-party/v2.0.0";
flake = false;
};
sysproxy = {
url = "github:mihomo-party-org/sysproxy-rs-opti/main";
flake = false;
};
country = {
url = "file+https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/country-lite.mmdb";
flake = false;
};
geoip = {
url = "file+https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.dat";
flake = false;
};
geosite = {
url = "file+https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geosite.dat";
flake = false;
};
metadb = {
url = "file+https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/geoip.metadb";
flake = false;
};
asn = {
url = "file+https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest/GeoLite2-ASN.mmdb";
flake = false;
};
};
outputs =
inputs@{ self, nixpkgs, ... }:
let
systems = [
"x86_64-linux"
"aarch64-linux"
];
forEachSystem = nixpkgs.lib.genAttrs systems;
mkPkgs =
system:
import nixpkgs {
inherit system;
config.allowUnfree = true;
};
mkPackage =
system:
let
pkgs = mkPkgs system;
in
pkgs.callPackage ./nix/package.nix {
src = inputs.clash-party;
sysproxySrc = inputs.sysproxy;
inherit (inputs)
country
geoip
geosite
metadb
asn
;
subStore = pkgs.sub-store;
subStoreFrontend = pkgs.sub-store-frontend;
notoFontsColorEmoji = pkgs.noto-fonts-color-emoji;
};
in
{
packages = forEachSystem (
system:
let
package = mkPackage system;
in
{
clash-party = package;
default = package;
inherit (package) sysproxy unwrapped;
}
);
apps = forEachSystem (system: {
clash-party = {
type = "app";
program = "${self.packages.${system}.clash-party}/bin/clash-party";
};
default = self.apps.${system}.clash-party;
});
nixosModules = {
clash-party = import ./nix/module.nix { inherit self; };
default = self.nixosModules.clash-party;
};
};
}