From 410ac6cdc479402c1c337801ff8a79c8ad612faf Mon Sep 17 00:00:00 2001 From: Ayush Jha Date: Mon, 6 May 2024 17:10:28 +0545 Subject: [PATCH] use flakeutils for proper systems management --- flake.lock | 34 ++++++++++++++++++++++++++++++++++ flake.nix | 43 ++++++++++++++++++++++++++----------------- 2 files changed, 60 insertions(+), 17 deletions(-) diff --git a/flake.lock b/flake.lock index 1c2539a..74172a2 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,23 @@ { "nodes": { + "flakeutils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1714763106, @@ -17,8 +35,24 @@ }, "root": { "inputs": { + "flakeutils": "flakeutils", "nixpkgs": "nixpkgs" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index df2af80..b473c98 100644 --- a/flake.nix +++ b/flake.nix @@ -1,27 +1,36 @@ { description = "ayys's fork of st - the suckless simple terminal"; - inputs.nixpkgs.url = "nixpkgs/nixos-unstable"; + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + flakeutils.url = "github:numtide/flake-utils"; + }; outputs = - { self, nixpkgs }: - let - pkgs = import nixpkgs { system = "x86_64-linux"; }; - in - { - defaultPackage.x86_64-linux = pkgs.stdenv.mkDerivation { - name = "st"; - src = ./.; - buildInputs = [ - pkgs.gcc pkgs.pkg-config pkgs.xorg.libX11 pkgs.xorg.libXft pkgs.ncurses - ]; - buildPhase = '' + { self, nixpkgs, flakeutils }: + flakeutils.lib.eachDefaultSystem (system: + let pkgs = nixpkgs.legacyPackages.${system}; in + { + packages = rec { + st = pkgs.stdenv.mkDerivation { + name = "st"; + src = ./.; + buildInputs = [ + pkgs.gcc pkgs.pkg-config pkgs.xorg.libX11 pkgs.xorg.libXft pkgs.ncurses + ]; + buildPhase = '' make ''; - installPhase = '' + installPhase = '' TERMINFO="$out" make install DESTDIR="$out" PREFIX="" ''; - }; - - }; + }; + default = st; + }; + apps = rec { + st = flakeutils.lib.mkApp { drv = self.packages.${system}.st; }; + default = st; + }; + } + ); }