mirror of
https://github.com/Jovian-Experiments/Jovian-NixOS.git
synced 2025-10-05 16:22:38 +02:00
68 lines
1.8 KiB
Nix
68 lines
1.8 KiB
Nix
{
|
|
description = "NixOS on the Steam Deck";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
nix-github-actions = {
|
|
url = "github:zhaofengli/nix-github-actions/matrix-name";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, nix-github-actions }: let
|
|
inherit (nixpkgs) lib;
|
|
|
|
supportedSystems = [ "x86_64-linux" ];
|
|
eachSupportedSystem = f: nixpkgs.lib.genAttrs supportedSystems (system: let
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
config = {
|
|
allowAliases = false;
|
|
allowUnfree = true;
|
|
};
|
|
overlays = [ self.overlays.default ];
|
|
};
|
|
in f pkgs);
|
|
in {
|
|
legacyPackages = eachSupportedSystem (pkgs: pkgs);
|
|
|
|
nixosModules = rec {
|
|
default = jovian;
|
|
jovian = ./modules;
|
|
};
|
|
|
|
overlays = rec {
|
|
# TODO: Minimize diff while making `nix flake check` pass
|
|
default = jovian;
|
|
jovian = final: prev: import ./overlay.nix final prev;
|
|
};
|
|
|
|
checks = eachSupportedSystem (pkgs: let
|
|
overlayContents = builtins.attrNames (import ./overlay.nix {} {})
|
|
++ [ "steam" ];
|
|
jobs = lib.foldl (ret: f: f ret) overlayContents [
|
|
(map (attr: lib.nameValuePair attr pkgs.${attr}))
|
|
(builtins.filter (job: lib.isDerivation job.value))
|
|
builtins.listToAttrs
|
|
];
|
|
in jobs);
|
|
|
|
githubActions = nix-github-actions.lib.mkGithubMatrix {
|
|
inherit (self) checks;
|
|
};
|
|
|
|
devShells = eachSupportedSystem (pkgs: {
|
|
default = pkgs.mkShell {
|
|
packages = let
|
|
pyenv = pkgs.python3.withPackages (ps: [
|
|
ps.colorama
|
|
ps.httpx
|
|
ps.toml
|
|
(ps.callPackage ./support/manifest/pyalpm.nix {})
|
|
]);
|
|
in [ pyenv ];
|
|
};
|
|
});
|
|
};
|
|
}
|