{ # Consumes a non-flake input as raw source by setting `flake = false`. description = "Consume a non-flake input as raw source"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; releaseData = { url = "path:./release-data"; flake = false; }; }; outputs = { self, nixpkgs, ... }: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; manifest = builtins.fromJSON (builtins.readFile "${self.inputs.releaseData}/manifest.json"); renderWave = wave: "${wave.stage}: ${toString wave.percentage}% owned by ${wave.owner}"; reportText = builtins.concatStringsSep "\n" ( [ "release: ${manifest.release}" "channel: ${manifest.channel}" "waves:" ] ++ map renderWave manifest.waves ); in { packages.${system}.default = pkgs.writeShellApplication { name = "show-raw-release"; text = '' cat <<'EOF' ${reportText} EOF ''; }; checks.${system}.release-data = pkgs.runCommand "non-flake-input-check" { releaseName = manifest.release; waveCount = toString (builtins.length manifest.waves); rawManifest = builtins.readFile "${self.inputs.releaseData}/manifest.json"; } '' if [ "$releaseName" != "edge-cache-2026-05" ]; then echo "unexpected release name: $releaseName" >&2 exit 1 fi if [ "$waveCount" != "2" ]; then echo "unexpected wave count: $waveCount" >&2 exit 1 fi printf '%s\n' "$rawManifest" | grep -q '"channel": "canary"' echo ok > "$out" ''; }; }