{ lib, callPackage, writeShellApplication, stdenv, }: let mainInfo = callPackage ./main.nix { }; channelsURL = "https://raw.githubusercontent.com/NixOS/infra/refs/heads/main/channels.nix"; in writeShellApplication { name = "version-info"; runtimeEnv = { NIX_CONFIG = '' experimental-features = nix-command flakes pipe-operators ''; }; text = '' # Download channel info from NixOS/infra curl ${channelsURL} | nix eval --file - --json > channels.json # Use channels.nix to build channels.toml nix build --impure \ --inputs-from ${toString ../..} \ --file ${./supported-versions.nix} \ --argstr system ${stdenv.hostPlatform.system} \ --arg-from-file channelsJSON channels.json \ --out-link channels.toml ( echo "# DO NOT MODIFY!" echo "# This file was generated by ${ lib.strings.removePrefix (toString ../.. + "/") (toString ./default.nix) }" cat ${mainInfo} echo cat channels.toml ) > version-info.toml ''; }