1
0
Fork 0

weewx: init at 5.0.2+plugins
All checks were successful
Build / build-arm64-linux (push) Successful in 1m31s
Build / build-amd64-linux (push) Successful in 2m6s

This commit is contained in:
Daniel Kempkens 2024-06-29 23:11:25 +02:00
parent 88600a2464
commit cf6ce3d161
Signed by: daniel
SSH key fingerprint: SHA256:Ks/MyhQYcPRQiwMKLAKquWCdCPe3JXlb1WttgnAoSeM
4 changed files with 235 additions and 4 deletions

View file

@ -58,6 +58,10 @@ jobs:
run: | run: |
nix build '.#vuetorrent' nix build '.#vuetorrent'
attic push ${{ secrets.ATTIC_CACHE }} $(nix-store -qR --include-outputs $(nix-store -qd ./result) | grep -v '\.drv$') attic push ${{ secrets.ATTIC_CACHE }} $(nix-store -qR --include-outputs $(nix-store -qd ./result) | grep -v '\.drv$')
- name: Build weewx
run: |
nix build '.#weewx'
attic push ${{ secrets.ATTIC_CACHE }} $(nix-store -qR --include-outputs $(nix-store -qd ./result) | grep -v '\.drv$')
build-arm64-linux: build-arm64-linux:
runs-on: nix-arm64 runs-on: nix-arm64

View file

@ -18,13 +18,52 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1703863825,
"narHash": "sha256-rXwqjtwiGKJheXB43ybM8NwWB8rO2dSRrEqes0S7F5Y=",
"owner": "nix-community",
"repo": "nix-github-actions",
"rev": "5163432afc817cf8bd1f031418d1869e4c9d5547",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1719540504, "lastModified": 1719629854,
"narHash": "sha256-SIbmh3yyPmzLI+qHlMC/pJVfo4ISFu1OORo5YLFk8o0=", "narHash": "sha256-BheGh2LLDet7B7VX+S56M99LuwAMsqJhdBTRw3gr95o=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "33be72b31b7cc5a0b43cc3b6c005cf4e4d47d899", "rev": "5e87fb56fd499ee4090e6ed939561a9470ac5f53",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -46,10 +85,85 @@
"url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz" "url": "https://github.com/NixOS/nixpkgs/archive/eb9ceca17df2ea50a250b6b27f7bf6ab0186f198.tar.gz"
} }
}, },
"poetry2nix": {
"inputs": {
"flake-utils": "flake-utils",
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2",
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1719549552,
"narHash": "sha256-efvBV+45uQA6r7aov48H6MhvKp1QUIyIX5gh9oueUzs=",
"owner": "nix-community",
"repo": "poetry2nix",
"rev": "4fd045cdb85f2a0173021a4717dc01d92d7ab2b2",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "poetry2nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs",
"poetry2nix": "poetry2nix"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"id": "systems",
"type": "indirect"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"poetry2nix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1718522839,
"narHash": "sha256-ULzoKzEaBOiLRtjeY3YoGFJMwWSKRYOic6VNw2UyTls=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "68eb1dc333ce82d0ab0c0357363ea17c31ea1f81",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
} }
} }
}, },

View file

@ -4,6 +4,11 @@
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
flake-parts.url = "github:hercules-ci/flake-parts"; flake-parts.url = "github:hercules-ci/flake-parts";
poetry2nix = {
url = "github:nix-community/poetry2nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = inputs@{ flake-parts, ... }: outputs = inputs@{ flake-parts, ... }:
@ -24,6 +29,8 @@
let let
inherit (pkgs) callPackage; inherit (pkgs) callPackage;
poetry2nix = inputs.poetry2nix.lib.mkPoetry2Nix { inherit pkgs; };
darwinPackages = darwinPackages =
if lib.hasSuffix "darwin" system then { if lib.hasSuffix "darwin" system then {
cliclick = callPackage ./packages/cliclick.nix { }; cliclick = callPackage ./packages/cliclick.nix { };
@ -43,6 +50,7 @@
rexit = callPackage ./packages/rexit.nix { }; rexit = callPackage ./packages/rexit.nix { };
tg-archive = callPackage ./packages/tg-archive.nix { }; tg-archive = callPackage ./packages/tg-archive.nix { };
vuetorrent = callPackage ./packages/vuetorrent.nix { }; vuetorrent = callPackage ./packages/vuetorrent.nix { };
weewx = callPackage ./packages/weewx.nix { inherit poetry2nix; };
weewx-proxy = callPackage ./packages/weewx-proxy.nix { }; weewx-proxy = callPackage ./packages/weewx-proxy.nix { };
} // darwinPackages; } // darwinPackages;

105
packages/weewx.nix Normal file
View file

@ -0,0 +1,105 @@
{ pkgs, lib, poetry2nix }:
let
python = pkgs.python311;
pythonPackages = pkgs.python311Packages;
weewx = pkgs.fetchFromGitHub {
owner = "weewx";
repo = "weewx";
rev = "v5.0.2";
hash = "sha256-UVHoi+hXcpbledeXlZ+7TDwIeLIXYazmpDcwW3QW5BY=";
};
plugin-weewx-mqtt = pkgs.fetchurl {
url = "https://github.com/matthewwall/weewx-mqtt/archive/d1739f3d57f07f402ddd3c20ac10ad5f874be1e9.zip";
hash = "sha256-mNfZlrJPCo/vD5Dgt8PYa6ZHN+rTqqIA6c7MozY9Vss=";
};
plugin-weewx-mqtt-subscribe = pkgs.fetchurl {
url = "https://github.com/bellrichm/weewx-mqttsubscribe/archive/refs/tags/v2.3.1.zip";
hash = "sha256-co9fTm6vBZzg2jSKi7kmi7n//pi/bLE3rJhTT2O1ZtE=";
};
plugin-weewx-gts = pkgs.fetchurl {
url = "https://github.com/roe-dl/weewx-GTS/archive/3d9c04d4fc2541b555c2a3274c4dc093126fab2e.zip";
hash = "sha256-h5tomXhi0Me+tJtfrvgePGLDo4sQm+0SkrndOWjVUzw=";
};
plugin-weewx-purpleair = pkgs.fetchurl {
url = "https://github.com/bakerkj/weewx-purpleair/archive/refs/tags/v0.9.zip";
hash = "sha256-L7mzbsb/Ewzd6kCrceOESMzEJDLjshFohgVK2U5/ZsM=";
};
plugin-weewx-aqi = pkgs.fetchurl {
url = "https://github.com/jonathankoren/weewx-aqi/archive/refs/tags/v1.4.1.zip";
hash = "sha256-jDZPfhkLm2aRqeeevJadqNZBHgcYcHvYBxW6HFmJQUE=";
};
plugin-weewx-wdc = pkgs.fetchurl {
url = "https://github.com/Daveiano/weewx-wdc/releases/download/v3.5.1/weewx-wdc-v3.5.1.zip";
hash = "sha256-MPjh/a6+f668yfD5AyCWFmyD1Q5p8nxCzESOUKx7wkQ=";
};
in
poetry2nix.mkPoetryApplication {
inherit python;
projectDir = weewx;
overrides = poetry2nix.defaultPoetryOverrides.extend (final: prev: {
ct3 = prev.ct3.overridePythonAttrs (old: {
buildInputs = (old.buildInputs or [ ]) ++ [ prev.setuptools ];
});
pyserial = prev.pyserial.overridePythonAttrs (old: {
buildInputs = (old.buildInputs or [ ]) ++ [ prev.setuptools ];
});
});
nativeBuildInputs = with pythonPackages; [
# Poetry (?)
cachecontrol
cleo
crashtest
dulwich
fastjsonschema
keyring
pexpect
pkginfo
platformdirs
poetry-core
requests-toolbelt
shellingham
tomlkit
trove-classifiers
virtualenv
xattr
pkgs.poetry
pkgs.poetryPlugins.poetry-plugin-export
pkgs.unzip
];
buildInputs = with pythonPackages; [
paho-mqtt
requests
];
postPatch = ''
substituteInPlace pyproject.toml --replace-fail "poetry.masonry" "poetry.core.masonry"
'';
postInstall = ''
mkdir -p $out/home/weewx-data
cp $out/lib/*/site-packages/weewx_data/weewx.conf $out/home/weewx-data/
mkdir $TMPDIR/weewx-wdc/
unzip ${plugin-weewx-wdc} -d $TMPDIR/weewx-wdc/
HOME=$out/home $out/bin/weectl extension install ${plugin-weewx-mqtt} --yes
HOME=$out/home $out/bin/weectl extension install ${plugin-weewx-mqtt-subscribe} --yes
HOME=$out/home $out/bin/weectl extension install ${plugin-weewx-gts} --yes
HOME=$out/home $out/bin/weectl extension install ${plugin-weewx-purpleair} --yes
HOME=$out/home $out/bin/weectl extension install ${plugin-weewx-aqi} --yes
HOME=$out/home $out/bin/weectl extension install $TMPDIR/weewx-wdc/ --yes
'';
}