{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; devenv.url = "github:cachix/devenv"; nixpkgs-python = { url = "github:cachix/nixpkgs-python"; inputs.nixpkgs.follows = "nixpkgs"; }; }; nixConfig = { extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="; extra-substituters = "https://devenv.cachix.org"; }; outputs = { self, nixpkgs, devenv, ... } @ inputs: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; adPath = "/usr/src/app"; in { packages.${system} = { devenv-up = self.devShells.${system}.default.config.procfileScript; devenv-test = self.devShells.${system}.default.config.test; }; devShells.${system}.default = devenv.lib.mkShell { inherit inputs pkgs; modules = [ ({ pkgs, config, ... }: { # This is your devenv configuration pre-commit.hooks = { end-of-file-fixer.enable = true; trim-trailing-whitespace.enable = true; }; languages.python = { enable = true; version = "3.12.7"; uv = { enable = true; sync = { enable = true; allExtras = true; arguments = [ "-U" ]; }; }; }; packages = with pkgs; [ git (writeShellScriptBin "full-build" '' cd ${adPath} ${pkgs.uv}/bin/uv build --wheel docker build -t acockburn/appdaemon:local-dev ${adPath} '') ]; enterShell = '' alias appdaemon="${pkgs.uv}/bin/uv run --frozen python -m appdaemon" alias ad="appdaemon" export PS1="\[\e[0;34m\](AppDaemon)\[\e[0m\] ''${PS1-}" export VIRTUAL_ENV=$UV_PROJECT_ENVIRONMENT echo -e "URL: \e[34m$(${pkgs.git}/bin/git config --get remote.origin.url)\e[0m" echo -e "Branch: \e[32m$(${pkgs.git}/bin/git rev-parse --abbrev-ref HEAD)\e[0m" echo -e "Hash: \e[33m$(${pkgs.git}/bin/git rev-parse --short HEAD)\e[0m" echo "AppDaemon v$(${pkgs.uv}/bin/uv pip show appdaemon | awk '/^Version:/ {print $2}') development shell started" ''; }) ]; }; }; }