Merge pull request #830 from kradalby/nix-overlay

This commit is contained in:
Kristoffer Dalby 2022-09-26 12:13:05 +02:00 committed by GitHub
commit 8fbba1ac94
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 154 additions and 154 deletions

View File

@ -17,11 +17,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1662019588, "lastModified": 1664106353,
"narHash": "sha256-oPEjHKGGVbBXqwwL+UjsveJzghWiWV0n9ogo1X6l4cw=", "narHash": "sha256-HMJP80+DSxFySpWyuxz5+iNozS3+dVt0b4n6YMIU5/8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2da64a81275b68fdad38af669afeda43d401e94b", "rev": "79d3ca08920364759c63fd3eb562e99c0c17044a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -6,18 +6,22 @@
flake-utils.url = "github:numtide/flake-utils"; flake-utils.url = "github:numtide/flake-utils";
}; };
outputs = { self, nixpkgs, flake-utils, ... }: outputs = {
let self,
headscaleVersion = if (self ? shortRev) then self.shortRev else "dev"; nixpkgs,
flake-utils,
...
}: let
headscaleVersion =
if (self ? shortRev)
then self.shortRev
else "dev";
in in
{ {
overlay = final: prev: overlay = _: prev: let
let
pkgs = nixpkgs.legacyPackages.${prev.system}; pkgs = nixpkgs.legacyPackages.${prev.system};
in in rec {
rec { headscale = pkgs.buildGo119Module rec {
headscale =
pkgs.buildGo119Module rec {
pname = "headscale"; pname = "headscale";
version = headscaleVersion; version = headscaleVersion;
src = pkgs.lib.cleanSource self; src = pkgs.lib.cleanSource self;
@ -29,8 +33,7 @@
ldflags = ["-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}"]; ldflags = ["-s" "-w" "-X github.com/juanfont/headscale/cmd/headscale/cli.Version=v${version}"];
}; };
golines = golines = pkgs.buildGoModule rec {
pkgs.buildGoModule rec {
pname = "golines"; pname = "golines";
version = "0.9.0"; version = "0.9.0";
@ -69,8 +72,7 @@
# nativeBuildInputs = [ pkgs.installShellFiles ]; # nativeBuildInputs = [ pkgs.installShellFiles ];
# }; # };
protoc-gen-grpc-gateway = protoc-gen-grpc-gateway = pkgs.buildGoModule rec {
pkgs.buildGoModule rec {
pname = "grpc-gateway"; pname = "grpc-gateway";
version = "2.8.0"; version = "2.8.0";
@ -88,16 +90,17 @@
subPackages = ["protoc-gen-grpc-gateway" "protoc-gen-openapiv2"]; subPackages = ["protoc-gen-grpc-gateway" "protoc-gen-openapiv2"];
}; };
}; };
} // flake-utils.lib.eachDefaultSystem }
(system: // flake-utils.lib.eachDefaultSystem
let (system: let
pkgs = import nixpkgs { pkgs = import nixpkgs {
overlays = [self.overlay]; overlays = [self.overlay];
inherit system; inherit system;
}; };
buildDeps = with pkgs; [git go_1_19 gnumake]; buildDeps = with pkgs; [git go_1_19 gnumake];
devDeps = with pkgs; devDeps = with pkgs;
buildDeps ++ [ buildDeps
++ [
golangci-lint golangci-lint
golines golines
nodePackages.prettier nodePackages.prettier
@ -111,7 +114,6 @@
clang-tools # clang-format clang-tools # clang-format
]; ];
# Add entry to build a docker image with headscale # Add entry to build a docker image with headscale
# caveat: only works on Linux # caveat: only works on Linux
# #
@ -124,8 +126,7 @@
contents = [pkgs.headscale]; contents = [pkgs.headscale];
config.Entrypoint = [(pkgs.headscale + "/bin/headscale")]; config.Entrypoint = [(pkgs.headscale + "/bin/headscale")];
}; };
in in rec {
rec {
# `nix develop` # `nix develop`
devShell = pkgs.mkShell {buildInputs = devDeps;}; devShell = pkgs.mkShell {buildInputs = devDeps;};
@ -144,7 +145,8 @@
defaultApp = apps.headscale; defaultApp = apps.headscale;
checks = { checks = {
format = pkgs.runCommand "check-format" format =
pkgs.runCommand "check-format"
{ {
buildInputs = with pkgs; [ buildInputs = with pkgs; [
gnumake gnumake
@ -162,7 +164,5 @@
${pkgs.clang-tools}/bin/clang-format -style="{BasedOnStyle: Google, IndentWidth: 4, AlignConsecutiveDeclarations: true, AlignConsecutiveAssignments: true, ColumnLimit: 0}" -i ${./.} ${pkgs.clang-tools}/bin/clang-format -style="{BasedOnStyle: Google, IndentWidth: 4, AlignConsecutiveDeclarations: true, AlignConsecutiveAssignments: true, ColumnLimit: 0}" -i ${./.}
''; '';
}; };
}); });
} }