From db015efba6da747ff82eb2877a1770e8abb61470 Mon Sep 17 00:00:00 2001 From: derfenix Date: Tue, 7 Jan 2025 16:51:29 +0300 Subject: [PATCH] Update nix flake --- flake.nix | 42 ++++++++++-------------------------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/flake.nix b/flake.nix index c048f0c..1fe0c04 100644 --- a/flake.nix +++ b/flake.nix @@ -1,31 +1,17 @@ { description = "Photo/video organization tool"; - # Nixpkgs / NixOS version to use. inputs.nixpkgs.url = "nixpkgs/nixos-24.11"; outputs = { self, nixpkgs }: let - - # to work with older version of flakes lastModifiedDate = self.lastModifiedDate or self.lastModified or "19700101"; - - # Generate a user-friendly version number. version = "2.0.0"; - - # System types to support. supportedSystems = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]; - - # Helper function to generate an attrset '{ x86_64-linux = f "x86_64-linux"; ... }'. forAllSystems = nixpkgs.lib.genAttrs supportedSystems; - - # Nixpkgs instantiated for supported system types. nixpkgsFor = forAllSystems (system: import nixpkgs { inherit system; }); - in { - - # Provide some binary packages for selected system types. packages = forAllSystems (system: let pkgs = nixpkgsFor.${system}; @@ -34,25 +20,21 @@ photocatalog = pkgs.buildGoModule { pname = "photocatalog"; inherit version; - # In 'nix develop', we don't need a copy of the source tree - # in the Nix store. src = ./.; - - # This hash locks the dependencies of this package. It is - # necessary because of how Go requires network access to resolve - # VCS. See https://www.tweag.io/blog/2021-03-04-gomod2nix/ for - # details. Normally one can build with a fake hash and rely on native Go - # mechanisms to tell you what the hash should be or determine what - # it should be "out-of-band" with other tooling (eg. gomod2nix). - # To begin with it is recommended to set this, but one must - # remember to bump this hash when your dependencies change. - # vendorHash = pkgs.lib.fakeHash; - vendorHash = "sha256-dj11SRRoB8ZbkcQs75HPI0DpW4c5jzY0N8MD1wKpw+4="; }; }); - # Add dependencies that are only needed for development + nixosModules.photocatalog = { config, lib, pkgs, ... }: { + options.photocatalog = { + enable = lib.mkEnableOption "Enable photocatalog"; + }; + + config = lib.mkIf config.photocatalog.enable { + environment.systemPackages = [ self.photocatalog ]; + }; + }; + devShells = forAllSystems (system: let pkgs = nixpkgsFor.${system}; @@ -62,10 +44,6 @@ buildInputs = with pkgs; [ go gopls gotools go-tools ]; }; }); - - # The default package for 'nix build'. This makes sense if the - # flake provides only one package or there is a clear "main" - # package. defaultPackage = forAllSystems (system: self.packages.${system}.photocatalog); }; }