{ pkgs, ... }: { imports = [ ../../git ]; declarative-git.repositories."/home/spectrum/git/crosvm.git" = { branch = "master"; description = "Downstream crosvm tree for Spectrum"; group = "spectrum"; config.cgit.section = "obsolete"; }; declarative-git.repositories."/home/spectrum/git/doc.git" = { branch = "master"; description = "Old manuals for Spectrum"; hooks.post-update = [ (pkgs.writeShellScript "post-update.sh" '' nix-build --tarball-ttl 0 --out-link built --cores 1 -j1 -E " let src = builtins.fetchGit ./.; in (import src).overrideAttrs ({ ... }: { inherit src; }) " '') ]; group = "spectrum"; config.cgit.section = "obsolete"; }; declarative-git.repositories."/home/spectrum/git/nixpkgs.git" = { branch = "rootfs"; description = "Downstream nixpkgs tree for Spectrum"; group = "spectrum"; config.cgit.defBranch = "rootfs"; config.cgit.section = "obsolete"; config.core.sharedrepository = "0644"; }; declarative-git.repositories."/home/spectrum/git/mktuntap.git" = { branch = "master"; description = "Utility program for creating TUN and TAP devices on file descriptors"; group = "spectrum"; config.cgit.readme = ":README"; config.core.sharedrepository = "0644"; config.receive.denyNonFastforwards = true; }; declarative-git.repositories."/home/spectrum/git/spectrum.git" = { description = "A compartmentalized operating system"; group = "spectrum"; config.cgit.defBranch = "main"; hooks.post-receive = with pkgs; [ (writeShellScript "send-email.sh" '' set -ueo pipefail export PATH=${lib.makeBinPath [ coreutils curl gitMinimal gnused mailutils ]} repo_url=https://spectrum-os.org/git/spectrum inbox_url=https://spectrum-os.org/lists/archives/spectrum-devel while read oldrev newrev refname; do [ "$refname" = "refs/heads/main" ] || continue git log --reverse --format=%H "$oldrev..$newrev" | while read commit; do message_id="$(git log -1 --format=%B "$commit" | git interpret-trailers --parse | sed -n 's/^Message-Id: <\(.*\)>$/\1/Ip' | head -n 1)" [ -n "$message_id" ] || continue url="$inbox_url/$message_id/raw" path="$(mktemp)" curl -LSfso "$path" "$url" mail -E "file $path" -E "reply" -E "quit" < EOF rm "$path" done done '') (writeShellScript "build-documentation.sh" '' nix-build --tarball-ttl 0 --out-link /home/spectrum/Documentation -E ' import "''${builtins.fetchGit { url = ./.; ref = "main"; }}/Documentation" {} ' '') ]; }; declarative-git.repositories."/home/spectrum/git/ucspi-vsock.git" = { branch = "master"; description = "UCSPI-1996 implementation for Linux AF_VSOCK sockets"; group = "spectrum"; config.cgit.section = "obsolete"; }; declarative-git.repositories."/home/spectrum/git/www.git" = { branch = "master"; description = "Static source files for the Spectrum website"; group = "spectrum"; config.cgit.readme = ":README"; config.core.bare = false; config.core.logallrefupdates = true; config.core.sharedrepository = 1; config.core.worktree = "../../www"; config.receive.denyCurrentBranch = "updateInstead"; config.receive.denyNonFastforwards = true; }; }