Monorepo for Tangled
tangled.org
1#!/usr/bin/env bash
2set -euo pipefail
3
4repo=$(cd "$(dirname "$0")/../.." && pwd)
5image_root="${1:-$repo/out/localinfra-spindle-images}"
6
7mkdir -p "$image_root"
8
9extract_image() {
10 local package="$1"
11 local name="$2"
12 shift 2
13
14 local tarball
15 tarball=$(nix build "$repo#$package" --no-link --print-out-paths)
16
17 [ -d "$image_root/$name" ] && chmod -R +w "$image_root/$name" || true
18 rm -rf "$image_root/$name"
19 mkdir -p "$image_root/$name"
20 tar -C "$image_root/$name" -xzf "$tarball"
21
22 local alias
23 for alias in "$@"; do
24 rm -rf "$image_root/$alias"
25 ln -s "$name" "$image_root/$alias"
26 done
27}
28
29extract_image spindle-nixos-image-tarball nixos-x86_64 nixos
30extract_image spindle-alpine-image-tarball alpine-x86_64 alpine
31
32echo "prepared spindle microVM images in $image_root"