update nix project config
This commit is contained in:
parent
6a81d2f348
commit
b2a8c41ea0
2
.envrc
2
.envrc
@ -1 +1 @@
|
||||
use flake
|
||||
use nix --expr '(import <nixpkgs> {}).callPackage ./shell.nix {}'
|
25
default.nix
Normal file
25
default.nix
Normal file
@ -0,0 +1,25 @@
|
||||
{ buildGoModule, lib, callPackage, project-config? callPackage ./project-config.nix {}, ... }: buildGoModule {
|
||||
pname = "demo-signaling-server";
|
||||
version = "0.0.1";
|
||||
|
||||
nativeBuildInputs = project-config.buildTools;
|
||||
buildInputs = project-config.libraries;
|
||||
|
||||
src = ./.;
|
||||
|
||||
# vendorHash = "";
|
||||
vendorHash = "sha256-fxjQPK/6IWxnezix8aMMxw3+MZj8XxqnYD5Z9WUsdM4=";
|
||||
|
||||
preBuild = ''
|
||||
go generate -v ./...
|
||||
'';
|
||||
|
||||
GOFLAGS = ["-ldflags=-extldflags=-static" "-w"];
|
||||
|
||||
meta = with lib; {
|
||||
description = "go project scaffold";
|
||||
homepage = "https://git.jeffthecoder.xyz/public/os-flakes";
|
||||
license = licenses.unlicense;
|
||||
maintainers = [ ];
|
||||
};
|
||||
}
|
66
flake.nix
66
flake.nix
@ -1,49 +1,29 @@
|
||||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/release-23.11";
|
||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||
};
|
||||
outputs = { nixpkgs, ... }: rec {
|
||||
packages = nixpkgs.lib.genAttrs [ "x86_64-linux" "x86_64-darwin" ] (system:
|
||||
let pkgs = import nixpkgs { inherit system; }; in {
|
||||
default = pkgs.buildGoModule {
|
||||
pname = "demo-signaling-server";
|
||||
version = "0.0.1";
|
||||
outputs = { nixpkgs, ... }:
|
||||
let
|
||||
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
foreachSystem = nixpkgs.lib.genAttrs systems;
|
||||
in
|
||||
{
|
||||
packages = foreachSystem (system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in
|
||||
rec {
|
||||
hello = pkgs.callPackage ./default.nix { };
|
||||
|
||||
nativeBuildInputs = with pkgs; [
|
||||
protobuf
|
||||
protoc-gen-go
|
||||
protoc-gen-go-grpc
|
||||
];
|
||||
|
||||
preBuild = ''
|
||||
go generate -v ./...
|
||||
'';
|
||||
|
||||
|
||||
src = ./.;
|
||||
|
||||
CGO_ENABLED = "0";
|
||||
GOFLAGS = "-ldflags='-extldflags=-static -w -s";
|
||||
|
||||
vendorHash = "sha256-fxjQPK/6IWxnezix8aMMxw3+MZj8XxqnYD5Z9WUsdM4=";
|
||||
};
|
||||
});
|
||||
devShells = nixpkgs.lib.genAttrs [ "x86_64-linux" "x86_64-darwin" ] (system:
|
||||
let pkgs = import nixpkgs { inherit system; }; in {
|
||||
default = packages."${system}".default.overrideAttrs (prevAttrs: {
|
||||
GOFLAGS="";
|
||||
nativeBuildInputs = prevAttrs.nativeBuildInputs ++ (with pkgs; [
|
||||
gopls
|
||||
golangci-lint
|
||||
delve
|
||||
gosec
|
||||
go-outline
|
||||
gotools
|
||||
gomodifytags
|
||||
impl
|
||||
gotests
|
||||
]);
|
||||
default = hello;
|
||||
});
|
||||
});
|
||||
};
|
||||
devShells = foreachSystem
|
||||
(system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system; };
|
||||
in
|
||||
with pkgs; {
|
||||
default = pkgs.callPackage ./shell.nix { };
|
||||
});
|
||||
};
|
||||
}
|
||||
|
43
project-config.nix
Normal file
43
project-config.nix
Normal file
@ -0,0 +1,43 @@
|
||||
{ gopls
|
||||
, golangci-lint
|
||||
, delve
|
||||
, gosec
|
||||
, go-outline
|
||||
, gotools
|
||||
, gomodifytags
|
||||
, impl
|
||||
, gotests
|
||||
, protobuf
|
||||
, protoc-gen-go
|
||||
, protoc-gen-go-grpc
|
||||
, ...
|
||||
}: {
|
||||
buildTools = [
|
||||
protobuf
|
||||
protoc-gen-go
|
||||
protoc-gen-go-grpc
|
||||
|
||||
# pkg-config
|
||||
|
||||
# protobuf
|
||||
# protoc-gen-go
|
||||
# protoc-gen-go-grpc
|
||||
|
||||
# pigeon # PEG parser
|
||||
# ent-go
|
||||
|
||||
# k6 # load testing
|
||||
];
|
||||
libraries = [ ];
|
||||
devShellTools = [
|
||||
gopls
|
||||
golangci-lint
|
||||
delve
|
||||
gosec
|
||||
go-outline
|
||||
gotools
|
||||
gomodifytags
|
||||
impl
|
||||
gotests
|
||||
];
|
||||
}
|
7
shell.nix
Normal file
7
shell.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{ callPackage, project-config ? callPackage ./project-config.nix { }, ... }: let
|
||||
package = callPackage ./default.nix { inherit project-config; };
|
||||
in
|
||||
package.overrideAttrs (final: priv: {
|
||||
GOFLAGS = "";
|
||||
nativeBuildInputs = priv.nativeBuildInputs ++ project-config.devShellTools;
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user