add go-raceless
This commit is contained in:
22
flake.nix
22
flake.nix
@@ -86,7 +86,7 @@
|
||||
let
|
||||
myData = import ./data.nix;
|
||||
|
||||
overlays = [
|
||||
baseOverlays = [
|
||||
nur.overlays.default
|
||||
zig.overlays.default
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
vanta-agent = super.callPackage ./pkgs/vanta-agent.nix { };
|
||||
chronoctl = super.callPackage ./pkgs/chronoctl.nix { };
|
||||
gcloud-wrapped = super.callPackage ./pkgs/gcloud-wrapped { };
|
||||
go-raceless = super.callPackage ./pkgs/go-raceless { };
|
||||
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit (super) system;
|
||||
@@ -129,7 +130,7 @@
|
||||
vm = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
{ nixpkgs.overlays = overlays; }
|
||||
{ nixpkgs.overlays = baseOverlays; }
|
||||
./hosts/vm/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
];
|
||||
@@ -142,7 +143,7 @@
|
||||
mtworx = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
{ nixpkgs.overlays = overlays; }
|
||||
{ nixpkgs.overlays = baseOverlays; }
|
||||
./hosts/mtworx/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
nixos-hardware.nixosModules.lenovo-thinkpad-x1-11th-gen
|
||||
@@ -160,7 +161,7 @@
|
||||
fwminex = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
{ nixpkgs.overlays = overlays; }
|
||||
{ nixpkgs.overlays = baseOverlays; }
|
||||
./hosts/fwminex/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
nixos-hardware.nixosModules.framework-12th-gen-intel
|
||||
@@ -177,7 +178,7 @@
|
||||
vno3-nk = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
{ nixpkgs.overlays = overlays; }
|
||||
{ nixpkgs.overlays = baseOverlays; }
|
||||
./hosts/vno3-nk/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
agenix.nixosModules.default
|
||||
@@ -192,7 +193,7 @@
|
||||
vno1-gdrx = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
{ nixpkgs.overlays = overlays; }
|
||||
{ nixpkgs.overlays = baseOverlays; }
|
||||
./hosts/vno1-gdrx/configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
nix-index-database.nixosModules.nix-index
|
||||
@@ -209,7 +210,7 @@
|
||||
fra1-c = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
{ nixpkgs.overlays = overlays; }
|
||||
{ nixpkgs.overlays = baseOverlays; }
|
||||
agenix.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
./hosts/fra1-c/configuration.nix
|
||||
@@ -299,7 +300,10 @@
|
||||
// flake-utils.lib.eachDefaultSystem (
|
||||
system:
|
||||
let
|
||||
pkgs = import nixpkgs { inherit system overlays; };
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
overlays = baseOverlays;
|
||||
};
|
||||
in
|
||||
{
|
||||
devShells.default = pkgs.mkShellNoCC {
|
||||
@@ -321,7 +325,7 @@
|
||||
// (
|
||||
let
|
||||
pkgs = import nixpkgs {
|
||||
inherit overlays;
|
||||
overlays = baseOverlays;
|
||||
system = "x86_64-linux";
|
||||
};
|
||||
in
|
||||
|
||||
@@ -33,6 +33,10 @@ in
|
||||
type = bool;
|
||||
default = false;
|
||||
};
|
||||
wrapGo = lib.mkOption {
|
||||
type = bool;
|
||||
default = false;
|
||||
};
|
||||
email = lib.mkOption {
|
||||
type = nullOr str;
|
||||
default = "motiejus@jakstys.lt";
|
||||
@@ -86,7 +90,7 @@ in
|
||||
inherit lib;
|
||||
inherit pkgs;
|
||||
inherit (config.mj) stateVersion username;
|
||||
inherit (cfg) devTools email;
|
||||
inherit (cfg) devTools email wrapGo;
|
||||
hmOnly = false;
|
||||
};
|
||||
};
|
||||
|
||||
58
pkgs/go-raceless/default.nix
Normal file
58
pkgs/go-raceless/default.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
{ pkgs, go }:
|
||||
let
|
||||
go-wrapper = pkgs.writeShellApplication {
|
||||
name = "go";
|
||||
text = ''
|
||||
args=("$@")
|
||||
new_args=()
|
||||
has_test=false
|
||||
found_race=false
|
||||
|
||||
for arg in "''${args[@]}"; do
|
||||
if [[ "$arg" == "test" ]]; then
|
||||
has_test=true
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$has_test" == "true" ]]; then
|
||||
for arg in "''${args[@]}"; do
|
||||
if [[ "$arg" != "-race" ]]; then
|
||||
new_args+=("$arg")
|
||||
else
|
||||
found_race=true
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$found_race" == "true" ]]; then
|
||||
exec "$REAL_GO" "''${new_args[@]}"
|
||||
fi
|
||||
fi
|
||||
|
||||
exec "$REAL_GO" "$@"
|
||||
'';
|
||||
};
|
||||
|
||||
preservedAttrs = pkgs.lib.attrsets.getAttrs [
|
||||
"CGO_ENABLED"
|
||||
"GOARCH"
|
||||
"GOOS"
|
||||
"meta"
|
||||
] go;
|
||||
in
|
||||
pkgs.symlinkJoin (
|
||||
{
|
||||
name = "go-raceless";
|
||||
paths = [ go ];
|
||||
nativeBuildInputs = [ pkgs.makeWrapper ];
|
||||
postBuild = ''
|
||||
rm $out/bin/go
|
||||
|
||||
makeWrapper ${go-wrapper}/bin/go $out/bin/go \
|
||||
--set REAL_GO ${go}/bin/go
|
||||
'';
|
||||
}
|
||||
// preservedAttrs
|
||||
// {
|
||||
passthru = go.passthru or { };
|
||||
}
|
||||
)
|
||||
@@ -6,6 +6,7 @@
|
||||
devTools,
|
||||
hmOnly,
|
||||
username,
|
||||
wrapGo ? false,
|
||||
...
|
||||
}:
|
||||
let
|
||||
@@ -30,8 +31,13 @@ in
|
||||
(lib.mkIf devTools [
|
||||
universal-ctags
|
||||
|
||||
(
|
||||
if wrapGo then
|
||||
pkgs.go-raceless.override { inherit (pkgs.pkgs-unstable) go; }
|
||||
else
|
||||
pkgs.pkgs-unstable.go
|
||||
)
|
||||
pkgs-unstable.delve
|
||||
pkgs-unstable.go_1_25
|
||||
pkgs-unstable.go-tools
|
||||
pkgs.zigpkgs."0.15.1"
|
||||
])
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
mj.base.users.email = null;
|
||||
mj.base.users = {
|
||||
email = null;
|
||||
wrapGo = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
#swc
|
||||
|
||||
Reference in New Issue
Block a user