{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; }; outputs = { self, nixpkgs, ... }: let packageVersions = { # Wyze Cam Outdoor v1 Firmware # https://support.wyze.com/hc/en-us/articles/360024852172-Release-Notes-Firmware # v1 normal "wyze-4_17_4_418" = rec { name = "Wyze Cam Outdoor v1 Firmware ${version}"; basePath = "wcov"; version = "wco_cam_4.17.4.418"; hash = "sha256-bbHawgxUYfLotayyomQMFMsMjXT+2azab6Ey6yGe+No="; }; "wyze-4_17_4_394" = rec { name = "Wyze Cam Outdoor v1 Firmware ${version}"; basePath = "wco"; version = "wco_cam_4.17.4.394"; hash = "sha256-x0hnWHhkFu8jIPcQjJaIIIiz6lLsC1A+2uDErhNLmKQ="; }; # v1 sd "wyze-4_17_4_124" = rec { name = "Wyze Cam Outdoor v1 Firmware ${version}"; basePath = "wco"; version = "wco_cam_sd_4.17.4.124"; hash = "sha256-GJRUEB7NBnaoWXhGpi7ZF50V1U3w5lQuIMUWV0WMXA0="; }; "wyze-4_17_3_93" = rec { name = "Wyze Cam Outdoor v1 Firmware ${version}"; basePath = "wco"; version = "wco_cam_sd_4.17.3.93"; hash = "sha256-9iS8rR9ncKQUMcf17lwHFYBD3GbDhLYvZEUopcZfoPY="; }; # v2 "wyze-4_48_4_418" = rec { name = "Wyze Cam Outdoor v2 Firmware ${version}"; basePath = "wcov2"; version = "wco_cam_4.48.4.418"; hash = "sha256-1KAo8E77XI+4PcrjdDRtNDTB/g24I6rffprshuQgcbs="; }; "wyze-4_48_4_394" = rec { name = "Wyze Cam Outdoor v2 Firmware ${version}"; basePath = "wcov2"; version = "wco_cam_4.48.4.394"; hash = "sha256-yVsQ9EIxazsOLn9NuCOn7RMC7ACdbTlEi7CueReNJm4="; }; "wyze-4_48_4_124" = rec { name = "Wyze Cam Outdoor v2 Firmware ${version}"; basePath = "wcov2"; version = "wco_cam_v2_sd_4.48.4.124"; hash = "sha256-RqIpNR5DVDloTtjf0K+93VNfv74o2p01c0ekh8YZtJw="; }; # Wyze Cam Outdoor Base Station Firmware "wyze-4_16_4_496" = rec { name = "Wyze Cam Outdoor Base Station Firmware ${version}"; # https://download.wyzecam.com/firmware/base/wco_station_sd_4.16.4.496.zip basePath = "base"; version = "wco_station_sd_4.16.4.496"; hash = "sha256-pw0KLYrQlaKm/AnS0Qr18IQIDCgQcQnhwMfQ7C+Junk="; }; "wyze-4_16_4_452" = rec { name = "Wyze Cam Outdoor Base Station Firmware ${version}"; # https://download.wyzecam.com/firmware/base/wco_sta_4.16.4.452.zip basePath = "base"; version = "wco_sta_4.16.4.452"; hash = "sha256-cbwaqN2NaqI5AQXa4movTrJAnxgk/3KbOU2KKApCtx8="; }; # Wyze Cam Pan v3 Firmware "wyze-4_50_3_4240" = rec { name = "Wyze Cam Pan v3 Firmware ${version}"; # https://download.wyzecam.com/firmware/Panv3/recovery_wyzepan3_4.50.3.4240.bin.zip basePath = "Panv3"; version = "recovery_wyzepan3_4.50.3.4240.bin"; hash = "sha256-cbwaqN2NaqI5AQXa4movTrJAnxgk/3KbOU2KKApCtx8="; }; }; in { packages."aarch64-darwin" = let pkgs = import nixpkgs { system = "aarch64-darwin"; }; in nixpkgs.lib.mapAttrs (name: attrs: import ./wyze.nix { inherit pkgs; inherit attrs; } ) packageVersions; packages."x86_64-linux" = let pkgs = import nixpkgs { system = "x86_64-linux"; }; in nixpkgs.lib.mapAttrs (name: attrs: import ./wyze.nix { inherit pkgs; inherit attrs; } ) packageVersions; hydraJobs = { # only build x86-64-linux packages, as my hydra doesn't support others "x86_64-linux" = self.packages."x86_64-linux"; }; }; }