DEVELOPMENT ENVIRONMENT

~liljamo/anemos-test

f73871d2028117341a5f080d7df7a2eed4bc55c2 — Jonni Liljamo 15 days ago 2f98142
feat: makeimg init
8 files changed, 93 insertions(+), 1 deletions(-)

M .gitignore
A .makeimg.modes
A IMGBUILD
A files/etc/apk/repositories
A justfile
A keys
M makeimg.nix
A repositories
M .gitignore => .gitignore +8 -0
@@ 1,3 1,11 @@
# Nix Flake
/.direnv/
/.pre-commit-config.yaml
/result

# makeimg outputs
/anemos-test.img
/anemos-test.packages

# Alpine Linux keys
/files/etc/apk/keys/*

A .makeimg.modes => .makeimg.modes +19 -0
@@ 0,0 1,19 @@
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub
644 files/etc/apk/keys/alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub
644 files/etc/apk/repositories

A IMGBUILD => IMGBUILD +7 -0
@@ 0,0 1,7 @@
imgname=anemos-test
target=alpine
format="raw 4g msdos ext4"

packages="
  alpine-base
"

A files/etc/apk/repositories => files/etc/apk/repositories +2 -0
@@ 0,0 1,2 @@
https://dl-cdn.alpinelinux.org/alpine/v3.22/main
https://dl-cdn.alpinelinux.org/alpine/v3.22/community

A justfile => justfile +37 -0
@@ 0,0 1,37 @@
_default:
    just --list

alpine-keys:
    #!/usr/bin/env sh
    mkdir -p files/etc/apk/keys
    cd files/etc/apk/keys

    # Copy the names unser APKBUILD from here:
    # https://git.alpinelinux.org/aports/plain/main/alpine-keys
    keys="
      alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
      alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
      alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
      alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
      alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
      alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub
      alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub
      alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub
      alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub
      alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
      alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
      alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub
      alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub
      alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub
      alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
      alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
      alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub
      alpine-devel@lists.alpinelinux.org-66ba20fe.rsa.pub
    "

    for key in $keys; do
      curl -O "https://git.alpinelinux.org/aports/plain/main/alpine-keys/${key}"
    done

build:
    sudo makeimg

A keys => keys +1 -0
@@ 0,0 1,1 @@
files/etc/apk/keys
\ No newline at end of file

M makeimg.nix => makeimg.nix +18 -1
@@ 1,6 1,14 @@
{
  stdenv,
  makeWrapper,
  lib,
  pkgs,
  stdenv,
  coreutils,
  util-linux,
  e2fsprogs,
  parted,
  apk-tools,
  findutils,
  ...
}: let
in


@@ 17,7 25,16 @@ in

    dontBuild = true;

    nativeBuildInputs = [makeWrapper];
    installPhase = ''
      install -Dm755 -t $out/bin makeimg
      wrapProgram $out/bin/makeimg --set PATH ${lib.makeBinPath [
        coreutils
        util-linux
        e2fsprogs
        parted
        apk-tools
        findutils
      ]}
    '';
  }

A repositories => repositories +1 -0
@@ 0,0 1,1 @@
files/etc/apk/repositories
\ No newline at end of file