forked from
whitequark.org/git-pages
fork of whitequark.org/git-pages with mods for tangled
1{
2 inputs = {
3 nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
4 flake-utils.url = "github:numtide/flake-utils";
5 nix-filter.url = "github:numtide/nix-filter";
6 };
7
8 outputs =
9 {
10 self,
11 nixpkgs,
12 flake-utils,
13 nix-filter,
14 }:
15 flake-utils.lib.eachDefaultSystem (
16 system:
17 let
18 pkgs = nixpkgs.legacyPackages.${system};
19
20 git-pages = pkgs.buildGo125Module {
21 pname = "git-pages";
22 version = "0";
23
24 src = nix-filter {
25 root = self;
26
27 include = [
28 "go.mod"
29 "go.sum"
30 "main.go"
31
32 (nix-filter.lib.inDirectory "src")
33 ];
34 };
35
36 buildInputs = with pkgs; [
37 pkgsStatic.musl
38 ];
39
40 ldflags = [
41 "-linkmode external"
42 "-extldflags -static"
43 "-s -w"
44 ];
45
46 vendorHash = "sha256-oFKS3ciZyuzzMYg7g3idbssHfDdNYXzNjAXB6XDzMJg=";
47 };
48 in
49 {
50 formatter = pkgs.nixfmt-tree;
51
52 devShells.default = pkgs.mkShell {
53 inputsFrom = [
54 git-pages
55 ];
56
57 packages = with pkgs; [
58 caddy
59 ];
60 };
61
62 packages = {
63 inherit git-pages;
64 default = git-pages;
65 };
66
67 apps.vm =
68 let
69 guestSystem = if pkgs.stdenv.hostPlatform.isAarch64 then "aarch64-linux" else "x86_64-linux";
70 in
71 {
72 type = "app";
73 program =
74 (pkgs.writeShellApplication {
75 name = "vm";
76 text = ''
77 exec ${
78 pkgs.lib.getExe
79 (import ./nix/vm.nix {
80 inherit nixpkgs self;
81 system = guestSystem;
82 hostSystem = system;
83 }).config.system.build.vm
84 }
85 '';
86 })
87 + /bin/vm;
88 };
89 }
90 )
91 // {
92 nixosModules.default =
93 {
94 lib,
95 pkgs,
96 ...
97 }:
98 {
99 imports = [ ./nix/module.nix ];
100 services.git-pages.package =
101 lib.mkDefault
102 self.packages.${pkgs.stdenv.hostPlatform.system}.git-pages;
103 };
104 };
105}