From 2a68518b56b0f1328125d7fcacef9e31c38473a1 Mon Sep 17 00:00:00 2001 From: shimun Date: Sat, 10 Dec 2022 15:41:33 +0100 Subject: [PATCH] added: options added: dev env --- flake.nix | 17 +++++++++++++---- modules/home-manager.nix | 4 ++++ modules/options.nix | 9 +++++++-- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/flake.nix b/flake.nix index 29b81f9..d87b6bf 100644 --- a/flake.nix +++ b/flake.nix @@ -65,11 +65,11 @@ RUST_SRC_PATH = "${if inputs ? fenix then "${toolchain pkgs}/lib/rustlib" else pkgs.rustPlatform.rustLibSrc}"; RUST_LOG = "debug"; - SSH_CD_SOCKET_ADDRESS="127.0.0.1:6869"; - SSH_CD_CERT_DIR="certs/"; - SSH_CD_CA="certs/ca.pub"; + SSH_CD_SOCKET_ADDRESS = "127.0.0.1:6869"; + SSH_CD_CERT_DIR = "certs/"; + SSH_CD_CA = "certs/ca.pub"; - SSH_CD_API="http://${SSH_CD_SOCKET_ADDRESS}"; + SSH_CD_API = "http://${SSH_CD_SOCKET_ADDRESS}"; nativeBuildInputs = with pkgs; [ (toolchain pkgs) cargo-watch rustfmt nixpkgs-fmt ] ++ packages.default.nativeBuildInputs; inherit (packages.default) buildInputs; @@ -77,6 +77,9 @@ printf "Rust version:" rustc --version printf "\nbuild inputs: ${pkgs.lib.concatStringsSep ", " (map (bi: bi.name) (buildInputs ++ nativeBuildInputs))}" + function server() { + cargo watch -x "run --all-features -- server ''${@}" + } ''; }; @@ -112,6 +115,12 @@ homeManagerModules.default = { imports = [ ./modules/home-manager.nix ]; }; + nixosConfigurations.test = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + self.nixosModules.default + ]; + }; }; diff --git a/modules/home-manager.nix b/modules/home-manager.nix index 8de5f58..64f3308 100644 --- a/modules/home-manager.nix +++ b/modules/home-manager.nix @@ -28,4 +28,8 @@ in }; }) cfg.directories); + config.home.sessionVariables = mkIf (cfg.enable && cfg.endpoint != null) { + SSH_CD_API = cfg.endpoint; + }; + config.home.packages = mkIf cfg.enable [ cfg.package ]; } diff --git a/modules/options.nix b/modules/options.nix index fcd5dda..812d469 100644 --- a/modules/options.nix +++ b/modules/options.nix @@ -16,11 +16,14 @@ }; }; endpointOption = mkOption { - type = types.str; + type = with types; nullOr str; description = "API endpoint url"; default = "https://pki.shimun.net"; }; - + packageOption = mkOption { + type = types.package; + default = pkgs.ssh-cert-dist; + }; in { @@ -28,6 +31,7 @@ in services.ssh-cert-dist = { enable = mkEnableOption "ssh-cert-dist"; endpoint = endpointOption; + package = packageOption; directories = mkOption { type = with types; attrsOf (submodule directoryModule); default = { }; @@ -35,6 +39,7 @@ in }; programs.ssh-cert-dist = { enable = mkEnableOption "ssh-cert-dist client"; + package = packageOption; endpoint = endpointOption; }; };