78 lines
2.4 KiB
Nix
78 lines
2.4 KiB
Nix
{
|
|
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"
|
|
'';
|
|
})
|
|
];
|
|
};
|
|
};
|
|
} |