flake: init

This commit is contained in:
raf 2023-11-28 20:35:38 +03:00
parent 0683ce7b58
commit eb828c2f17
No known key found for this signature in database
GPG key ID: 02D1DD3FA08B6B29
5 changed files with 125 additions and 0 deletions

1
.gitignore vendored
View file

@ -1,3 +1,4 @@
**/.DS_Store **/.DS_Store
env env
*.pyc *.pyc
result*

26
flake.lock Normal file
View file

@ -0,0 +1,26 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1701189068,
"narHash": "sha256-Z84Km4ILllusI9IPI9qFRKN4Ss5893Ntbp1TcMCFIds=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "6fc4c1c40c98de86565acdb3fe43c6ba3efb3115",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

23
flake.nix Normal file
View file

@ -0,0 +1,23 @@
{
description = "An air quality monitoring service with a Raspberry Pi and a SDS011 sensor.";
inputs.nixpkgs.url = "github:NixOS/nixpkgs";
outputs = {
self,
nixpkgs,
}: let
systems = ["aarch64-linux"];
forEachSystem = nixpkgs.lib.genAttrs systems;
pkgsForEach = nixpkgs.legacyPackages;
in rec {
packages = forEachSystem (system: {
default = pkgsForEach.${system}.callPackage ./nix {};
});
devShells = forEachSystem (system: {
default = pkgsForEach.${system}.callPackage ./nix/shell.nix {};
});
hydraJobs = packages;
};
}

62
nix/default.nix Normal file
View file

@ -0,0 +1,62 @@
{
lib,
python3Packages,
makeWrapper,
python3,
...
}: let
pname = "pi_air_quality_monitor";
version = "0.0.1";
in
python3Packages.buildPythonApplication {
inherit pname version;
format = "other";
src = ../src;
pythonPath = with python3Packages; [
pyserial
flask
redis
ipython
apscheduler
flask-cors
(
buildPythonPackage rec {
pname = "python-aqi";
version = "0.6.1";
src = fetchPypi {
inherit pname version;
hash = "sha256-FBoDoP7UiIDchwbKV7A/MPqRq2DpMwR0v5yaj7m5YCA=";
};
}
)
];
nativeBuildInputs = [makeWrapper];
installFlags = ["prefix=$(out/bin)"];
postUnpack = ''
mkdir -p $out/bin
cp -rvf $src/* $out
'';
preFixup = ''
buildPythonPath "$pythonPath"
gappsWrapperArgs+=(
--prefix PYTHONPATH : "$program_PYTHONPATH"
)
makeWrapper ${lib.getExe python3} $out/bin/${pname} \
--add-flags $out/app.py \
--prefix PYTHONPATH : "$program_PYTHONPATH" \
--chdir $out/bin
'';
meta = {
description = "An air quality monitoring service with a Raspberry Pi and a SDS011 sensor. ";
homepage = "https://github.com/rydercalmdown/pi_air_quality_monitor";
mainProgram = pname;
platforms = with lib.platforms; ["aarch64-linux"];
maintainers = with lib.maintainers; [NotAShelf];
};
}

13
nix/shell.nix Normal file
View file

@ -0,0 +1,13 @@
{
callPackage,
mkShellNoCC,
python3,
...
}: let
defaultPackage = callPackage ./default.nix;
in
mkShellNoCC {
packages = [
(python3.withPackages defaultPackage.propagatedBuildInputs)
];
}