From e1f9bbb8f214c32a87b45e0aa4f7a15a8f631f7d Mon Sep 17 00:00:00 2001 From: Xe Date: Fri, 29 Apr 2022 18:43:00 +0000 Subject: [PATCH] generate tarball.nix with a script Signed-off-by: Xe --- flake.nix | 12 ++++-------- gen_tarball.sh | 17 +++++++++++++++++ tarball.nix | 7 +++++++ 3 files changed, 28 insertions(+), 8 deletions(-) create mode 100755 gen_tarball.sh create mode 100644 tarball.nix diff --git a/flake.nix b/flake.nix index dd7bf09..2314110 100644 --- a/flake.nix +++ b/flake.nix @@ -25,25 +25,21 @@ }; version = builtins.substring 0 8 self.lastModifiedDate; in { - packages = rec { + packages = let tsmeta = import ./tarball.nix; in rec { imagebuilder = pkgs.buildGoModule { pname = "taildeck-imagebuilder"; - inherit version; + inherit (tsmeta) version; src = ./.; vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo="; }; - tsTarball = builtins.fetchurl { - url = - "https://pkgs.tailscale.com/stable/tailscale_1.24.2_amd64.tgz"; - sha256 = "1b697g694vigzmv5q48l1d3pjc9l5gwzazggnfi7z9prb9cvlnx2"; - }; + tsTarball = tsmeta.tarball; image = pkgs.stdenv.mkDerivation { pname = "tailscale-image"; - version = "1.24.2"; + inherit (tsmeta) version; buildInputs = with pkgs; [ squashfsTools imagebuilder ]; phases = "installPhase"; diff --git a/gen_tarball.sh b/gen_tarball.sh new file mode 100755 index 0000000..80b737b --- /dev/null +++ b/gen_tarball.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env nix-shell +#! nix-shell -p curl -p jq -p nix -i bash + +set -euo pipefail + +version="$(curl https://pkgs.tailscale.com/stable/?mode=json | jq .Tarballs.amd64 -r)" +url="https://pkgs.tailscale.com/stable/${version}" +shasum="$(nix-prefetch-url "${url}")" + +rm -f tarball.nix +echo "{ + version = \"$(echo ${version} | cut -d_ -f2)\"; + tarball = builtins.fetchurl { + url = \"${url}\"; + sha256 = \"${shasum}\"; + }; +}" >> tarball.nix diff --git a/tarball.nix b/tarball.nix new file mode 100644 index 0000000..0bc3feb --- /dev/null +++ b/tarball.nix @@ -0,0 +1,7 @@ +{ + version = "1.24.2"; + tarball = builtins.fetchurl { + url = "https://pkgs.tailscale.com/stable/tailscale_1.24.2_amd64.tgz"; + sha256 = "1b697g694vigzmv5q48l1d3pjc9l5gwzazggnfi7z9prb9cvlnx2"; + }; +}