From f5309161471473a16af0455b768a8387f090f526 Mon Sep 17 00:00:00 2001 From: mtgmonkey Date: Mon, 9 Jun 2025 21:18:40 -0400 Subject: [PATCH] functional flake (I hope) --- flake.lock | 26 ++++++++++++++++++++++++++ flake.nix | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ result | 1 + 3 files changed, 79 insertions(+) create mode 100644 flake.lock create mode 100644 flake.nix create mode 120000 result diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..7c25aa2 --- /dev/null +++ b/flake.lock @@ -0,0 +1,26 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1749285348, + "narHash": "sha256-frdhQvPbmDYaScPFiCnfdh3B/Vh81Uuoo0w5TkWmmjU=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "3e3afe5174c561dee0df6f2c2b2236990146329f", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..89e9c29 --- /dev/null +++ b/flake.nix @@ -0,0 +1,52 @@ +{ + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + }; + outputs = {nixpkgs, ...}: let + system = "x86_64-linux"; + pkgs = nixpkgs.legacyPackages.${system}; + pkg = pkgs.stdenv.mkDerivation { + name = "jank-client"; + src = ./.; + nativeBuildInputs = [ + pkgs.compose2nix + ]; + buildPhase = '' + compose2nix -runtime "docker" -inputs "compose.yaml" -output "jank-client.nix" -project "jank-client" + echo "#!/usr/bin/env bash" > start-server + echo "systemctl start docker-build-jank-client-jank.service" >> start-server + echo "systemctl restart docker-jank-client-jank.service" >> start-server + ''; + installPhase = '' + mkdir $out/bin -p + cp start-server $out/bin/jank-client + cp jank-client.nix $out/jank-client.nix + ''; + }; + in { + packages.${system}.default = pkg; + nixosModules.${system}.default = { + lib, + config, + ... + }: { + options = { + services.jank-client = { + enable = lib.mkEnableOption "jank client"; + package = lib.mkOption { + description = "jank client package"; + default = pkgs.callPackage pkg; + type = lib.types.package; + }; + }; + }; + config = lib.mkIf config.services.jank-client.enable { + environment.systemPackages = [ + (lib.getExe + config.services.jank-client.package) + ]; + imports = ["${config.services.jank-client.package}/jank-client.nix"]; + }; + }; + }; +} diff --git a/result b/result new file mode 120000 index 0000000..1034b5a --- /dev/null +++ b/result @@ -0,0 +1 @@ +/nix/store/j30k62wridxiqb0xwfskrshp6rsyywig-jank-client \ No newline at end of file