Merge branch 'main' into fix-https-listen
This commit is contained in:
commit
84c4b0336f
2 changed files with 154 additions and 154 deletions
|
@ -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": {
|
||||||
|
|
302
flake.nix
302
flake.nix
|
@ -6,163 +6,163 @@
|
||||||
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,
|
||||||
in
|
flake-utils,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
headscaleVersion =
|
||||||
|
if (self ? shortRev)
|
||||||
|
then self.shortRev
|
||||||
|
else "dev";
|
||||||
|
in
|
||||||
{
|
{
|
||||||
overlay = final: prev:
|
overlay = _: prev: let
|
||||||
let
|
pkgs = nixpkgs.legacyPackages.${prev.system};
|
||||||
pkgs = nixpkgs.legacyPackages.${prev.system};
|
in rec {
|
||||||
in
|
headscale = pkgs.buildGo119Module rec {
|
||||||
rec {
|
pname = "headscale";
|
||||||
headscale =
|
version = headscaleVersion;
|
||||||
pkgs.buildGo119Module rec {
|
src = pkgs.lib.cleanSource self;
|
||||||
pname = "headscale";
|
|
||||||
version = headscaleVersion;
|
|
||||||
src = pkgs.lib.cleanSource self;
|
|
||||||
|
|
||||||
# When updating go.mod or go.sum, a new sha will need to be calculated,
|
# When updating go.mod or go.sum, a new sha will need to be calculated,
|
||||||
# update this if you have a mismatch after doing a change to thos files.
|
# update this if you have a mismatch after doing a change to thos files.
|
||||||
vendorSha256 = "sha256-DosFCSiQ5FURbIrt4NcPGkExc84t2MGMqe9XLxNHdIM=";
|
vendorSha256 = "sha256-DosFCSiQ5FURbIrt4NcPGkExc84t2MGMqe9XLxNHdIM=";
|
||||||
|
|
||||||
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 =
|
|
||||||
pkgs.buildGoModule rec {
|
|
||||||
pname = "golines";
|
|
||||||
version = "0.9.0";
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "segmentio";
|
|
||||||
repo = "golines";
|
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "sha256-BUXEg+4r9L/gqe4DhTlhN55P3jWt7ZyWFQycO6QePrw=";
|
|
||||||
};
|
|
||||||
|
|
||||||
vendorSha256 = "sha256-sEzWUeVk5GB0H41wrp12P8sBWRjg0FHUX6ABDEEBqK8=";
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.installShellFiles ];
|
|
||||||
};
|
|
||||||
|
|
||||||
golangci-lint = prev.golangci-lint.override {
|
|
||||||
# Override https://github.com/NixOS/nixpkgs/pull/166801 which changed this
|
|
||||||
# to buildGo118Module because it does not build on Darwin.
|
|
||||||
inherit (prev) buildGoModule;
|
|
||||||
};
|
|
||||||
|
|
||||||
# golangci-lint =
|
|
||||||
# pkgs.buildGo117Module rec {
|
|
||||||
# pname = "golangci-lint";
|
|
||||||
# version = "1.46.2";
|
|
||||||
#
|
|
||||||
# src = pkgs.fetchFromGitHub {
|
|
||||||
# owner = "golangci";
|
|
||||||
# repo = "golangci-lint";
|
|
||||||
# rev = "v${version}";
|
|
||||||
# sha256 = "sha256-7sDAwWz+qoB/ngeH35tsJ5FZUfAQvQsU6kU9rUHIHMk=";
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# vendorSha256 = "sha256-w38OKN6HPoz37utG/2QSPMai55IRDXCIIymeMe6ogIU=";
|
|
||||||
#
|
|
||||||
# nativeBuildInputs = [ pkgs.installShellFiles ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
protoc-gen-grpc-gateway =
|
|
||||||
pkgs.buildGoModule rec {
|
|
||||||
pname = "grpc-gateway";
|
|
||||||
version = "2.8.0";
|
|
||||||
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "grpc-ecosystem";
|
|
||||||
repo = "grpc-gateway";
|
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "sha256-8eBBBYJ+tBjB2fgPMX/ZlbN3eeS75e8TAZYOKXs6hcg=";
|
|
||||||
};
|
|
||||||
|
|
||||||
vendorSha256 = "sha256-AW2Gn/mlZyLMwF+NpK59eiOmQrYWW/9HPjbunYc9Ij4=";
|
|
||||||
|
|
||||||
nativeBuildInputs = [ pkgs.installShellFiles ];
|
|
||||||
|
|
||||||
subPackages = [ "protoc-gen-grpc-gateway" "protoc-gen-openapiv2" ];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
} // flake-utils.lib.eachDefaultSystem
|
|
||||||
(system:
|
golines = pkgs.buildGoModule rec {
|
||||||
let
|
pname = "golines";
|
||||||
pkgs = import nixpkgs {
|
version = "0.9.0";
|
||||||
overlays = [ self.overlay ];
|
|
||||||
inherit system;
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "segmentio";
|
||||||
|
repo = "golines";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-BUXEg+4r9L/gqe4DhTlhN55P3jWt7ZyWFQycO6QePrw=";
|
||||||
};
|
};
|
||||||
buildDeps = with pkgs; [ git go_1_19 gnumake ];
|
|
||||||
devDeps = with pkgs;
|
vendorSha256 = "sha256-sEzWUeVk5GB0H41wrp12P8sBWRjg0FHUX6ABDEEBqK8=";
|
||||||
buildDeps ++ [
|
|
||||||
|
nativeBuildInputs = [pkgs.installShellFiles];
|
||||||
|
};
|
||||||
|
|
||||||
|
golangci-lint = prev.golangci-lint.override {
|
||||||
|
# Override https://github.com/NixOS/nixpkgs/pull/166801 which changed this
|
||||||
|
# to buildGo118Module because it does not build on Darwin.
|
||||||
|
inherit (prev) buildGoModule;
|
||||||
|
};
|
||||||
|
|
||||||
|
# golangci-lint =
|
||||||
|
# pkgs.buildGo117Module rec {
|
||||||
|
# pname = "golangci-lint";
|
||||||
|
# version = "1.46.2";
|
||||||
|
#
|
||||||
|
# src = pkgs.fetchFromGitHub {
|
||||||
|
# owner = "golangci";
|
||||||
|
# repo = "golangci-lint";
|
||||||
|
# rev = "v${version}";
|
||||||
|
# sha256 = "sha256-7sDAwWz+qoB/ngeH35tsJ5FZUfAQvQsU6kU9rUHIHMk=";
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# vendorSha256 = "sha256-w38OKN6HPoz37utG/2QSPMai55IRDXCIIymeMe6ogIU=";
|
||||||
|
#
|
||||||
|
# nativeBuildInputs = [ pkgs.installShellFiles ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
protoc-gen-grpc-gateway = pkgs.buildGoModule rec {
|
||||||
|
pname = "grpc-gateway";
|
||||||
|
version = "2.8.0";
|
||||||
|
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "grpc-ecosystem";
|
||||||
|
repo = "grpc-gateway";
|
||||||
|
rev = "v${version}";
|
||||||
|
sha256 = "sha256-8eBBBYJ+tBjB2fgPMX/ZlbN3eeS75e8TAZYOKXs6hcg=";
|
||||||
|
};
|
||||||
|
|
||||||
|
vendorSha256 = "sha256-AW2Gn/mlZyLMwF+NpK59eiOmQrYWW/9HPjbunYc9Ij4=";
|
||||||
|
|
||||||
|
nativeBuildInputs = [pkgs.installShellFiles];
|
||||||
|
|
||||||
|
subPackages = ["protoc-gen-grpc-gateway" "protoc-gen-openapiv2"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// flake-utils.lib.eachDefaultSystem
|
||||||
|
(system: let
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
overlays = [self.overlay];
|
||||||
|
inherit system;
|
||||||
|
};
|
||||||
|
buildDeps = with pkgs; [git go_1_19 gnumake];
|
||||||
|
devDeps = with pkgs;
|
||||||
|
buildDeps
|
||||||
|
++ [
|
||||||
|
golangci-lint
|
||||||
|
golines
|
||||||
|
nodePackages.prettier
|
||||||
|
|
||||||
|
# Protobuf dependencies
|
||||||
|
protobuf
|
||||||
|
protoc-gen-go
|
||||||
|
protoc-gen-go-grpc
|
||||||
|
protoc-gen-grpc-gateway
|
||||||
|
buf
|
||||||
|
clang-tools # clang-format
|
||||||
|
];
|
||||||
|
|
||||||
|
# Add entry to build a docker image with headscale
|
||||||
|
# caveat: only works on Linux
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# nix build .#headscale-docker
|
||||||
|
# docker load < result
|
||||||
|
headscale-docker = pkgs.dockerTools.buildLayeredImage {
|
||||||
|
name = "headscale";
|
||||||
|
tag = headscaleVersion;
|
||||||
|
contents = [pkgs.headscale];
|
||||||
|
config.Entrypoint = [(pkgs.headscale + "/bin/headscale")];
|
||||||
|
};
|
||||||
|
in rec {
|
||||||
|
# `nix develop`
|
||||||
|
devShell = pkgs.mkShell {buildInputs = devDeps;};
|
||||||
|
|
||||||
|
# `nix build`
|
||||||
|
packages = with pkgs; {
|
||||||
|
inherit headscale;
|
||||||
|
inherit headscale-docker;
|
||||||
|
};
|
||||||
|
|
||||||
|
defaultPackage = pkgs.headscale;
|
||||||
|
|
||||||
|
# `nix run`
|
||||||
|
apps.headscale = flake-utils.lib.mkApp {
|
||||||
|
drv = packages.headscale;
|
||||||
|
};
|
||||||
|
defaultApp = apps.headscale;
|
||||||
|
|
||||||
|
checks = {
|
||||||
|
format =
|
||||||
|
pkgs.runCommand "check-format"
|
||||||
|
{
|
||||||
|
buildInputs = with pkgs; [
|
||||||
|
gnumake
|
||||||
|
nixpkgs-fmt
|
||||||
golangci-lint
|
golangci-lint
|
||||||
golines
|
|
||||||
nodePackages.prettier
|
nodePackages.prettier
|
||||||
|
golines
|
||||||
# Protobuf dependencies
|
clang-tools
|
||||||
protobuf
|
|
||||||
protoc-gen-go
|
|
||||||
protoc-gen-go-grpc
|
|
||||||
protoc-gen-grpc-gateway
|
|
||||||
buf
|
|
||||||
clang-tools # clang-format
|
|
||||||
];
|
];
|
||||||
|
} ''
|
||||||
|
${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt ${./.}
|
||||||
# Add entry to build a docker image with headscale
|
${pkgs.golangci-lint}/bin/golangci-lint run --fix --timeout 10m
|
||||||
# caveat: only works on Linux
|
${pkgs.nodePackages.prettier}/bin/prettier --write '**/**.{ts,js,md,yaml,yml,sass,css,scss,html}'
|
||||||
#
|
${pkgs.golines}/bin/golines --max-len=88 --base-formatter=gofumpt -w ${./.}
|
||||||
# Usage:
|
${pkgs.clang-tools}/bin/clang-format -style="{BasedOnStyle: Google, IndentWidth: 4, AlignConsecutiveDeclarations: true, AlignConsecutiveAssignments: true, ColumnLimit: 0}" -i ${./.}
|
||||||
# nix build .#headscale-docker
|
'';
|
||||||
# docker load < result
|
};
|
||||||
headscale-docker = pkgs.dockerTools.buildLayeredImage {
|
});
|
||||||
name = "headscale";
|
|
||||||
tag = headscaleVersion;
|
|
||||||
contents = [ pkgs.headscale ];
|
|
||||||
config.Entrypoint = [ (pkgs.headscale + "/bin/headscale") ];
|
|
||||||
};
|
|
||||||
in
|
|
||||||
rec {
|
|
||||||
# `nix develop`
|
|
||||||
devShell = pkgs.mkShell { buildInputs = devDeps; };
|
|
||||||
|
|
||||||
# `nix build`
|
|
||||||
packages = with pkgs; {
|
|
||||||
inherit headscale;
|
|
||||||
inherit headscale-docker;
|
|
||||||
};
|
|
||||||
|
|
||||||
defaultPackage = pkgs.headscale;
|
|
||||||
|
|
||||||
# `nix run`
|
|
||||||
apps.headscale = flake-utils.lib.mkApp {
|
|
||||||
drv = packages.headscale;
|
|
||||||
};
|
|
||||||
defaultApp = apps.headscale;
|
|
||||||
|
|
||||||
checks = {
|
|
||||||
format = pkgs.runCommand "check-format"
|
|
||||||
{
|
|
||||||
buildInputs = with pkgs; [
|
|
||||||
gnumake
|
|
||||||
nixpkgs-fmt
|
|
||||||
golangci-lint
|
|
||||||
nodePackages.prettier
|
|
||||||
golines
|
|
||||||
clang-tools
|
|
||||||
];
|
|
||||||
} ''
|
|
||||||
${pkgs.nixpkgs-fmt}/bin/nixpkgs-fmt ${./.}
|
|
||||||
${pkgs.golangci-lint}/bin/golangci-lint run --fix --timeout 10m
|
|
||||||
${pkgs.nodePackages.prettier}/bin/prettier --write '**/**.{ts,js,md,yaml,yml,sass,css,scss,html}'
|
|
||||||
${pkgs.golines}/bin/golines --max-len=88 --base-formatter=gofumpt -w ${./.}
|
|
||||||
${pkgs.clang-tools}/bin/clang-format -style="{BasedOnStyle: Google, IndentWidth: 4, AlignConsecutiveDeclarations: true, AlignConsecutiveAssignments: true, ColumnLimit: 0}" -i ${./.}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue