mirror of
https://github.com/Melorise/cp-nix.git
synced 2026-11-07 14:39:34 +00:00
104 lines
2.5 KiB
Nix
104 lines
2.5 KiB
Nix
{
|
|
description = "Clash Party, built from source with a reproducible Nix flake";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:Melorise/nixpkgs/nixos-unstable";
|
|
|
|
clash-party = {
|
|
url = "github:mihomo-party-org/clash-party/v2.0.1";
|
|
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;
|
|
};
|
|
};
|
|
}
|