{ age , argcomplete , fastapi , uvicorn , bubblewrap , installShellFiles , nix , openssh , pytest , pytest-cov , pytest-subprocess , pytest-parallel , python3 , runCommand , setuptools , sops , stdenv , wheel , zerotierone , rsync , pkgs , ui-assets }: let # This provides dummy options for testing clan config and prevents it from # evaluating the flake .# CLAN_OPTIONS_FILE = ./clan_cli/config/jsonschema/options.json; dependencies = [ argcomplete # optional dependency: if not enabled, shell completion will not work fastapi uvicorn # optional dependencies: if not enabled, webui subcommand will not work ]; testDependencies = [ pytest pytest-cov pytest-subprocess pytest-parallel openssh stdenv.cc ]; checkPython = python3.withPackages (_ps: dependencies ++ testDependencies); # - vendor the jsonschema nix lib (copy instead of symlink). # - lib.cleanSource prevents unnecessary rebuilds when `self` changes. source = runCommand "clan-cli-source" { } '' cp -r ${./.} $out chmod -R +w $out rm $out/clan_cli/config/jsonschema ln -sTf ${nixpkgs} $out/clan_cli/nixpkgs cp -r ${../../lib/jsonschema} $out/clan_cli/config/jsonschema ln -s ${ui-assets} $out/clan_cli/webui/assets ''; nixpkgs = runCommand "nixpkgs" { } '' mkdir -p $out/unfree cat > $out/unfree/default.nix < $out/flake-registry.json <