about summary refs log tree commit diff
path: root/flake.nix
blob: 3b352bdedadba1c0f9f6b1a465e15b85aa2c2f34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
{
  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";
    };
  };
}