add go-raceless
This commit is contained in:
22
flake.nix
22
flake.nix
@@ -86,7 +86,7 @@
|
|||||||
let
|
let
|
||||||
myData = import ./data.nix;
|
myData = import ./data.nix;
|
||||||
|
|
||||||
overlays = [
|
baseOverlays = [
|
||||||
nur.overlays.default
|
nur.overlays.default
|
||||||
zig.overlays.default
|
zig.overlays.default
|
||||||
|
|
||||||
@@ -107,6 +107,7 @@
|
|||||||
vanta-agent = super.callPackage ./pkgs/vanta-agent.nix { };
|
vanta-agent = super.callPackage ./pkgs/vanta-agent.nix { };
|
||||||
chronoctl = super.callPackage ./pkgs/chronoctl.nix { };
|
chronoctl = super.callPackage ./pkgs/chronoctl.nix { };
|
||||||
gcloud-wrapped = super.callPackage ./pkgs/gcloud-wrapped { };
|
gcloud-wrapped = super.callPackage ./pkgs/gcloud-wrapped { };
|
||||||
|
go-raceless = super.callPackage ./pkgs/go-raceless { };
|
||||||
|
|
||||||
pkgs-unstable = import nixpkgs-unstable {
|
pkgs-unstable = import nixpkgs-unstable {
|
||||||
inherit (super) system;
|
inherit (super) system;
|
||||||
@@ -129,7 +130,7 @@
|
|||||||
vm = nixpkgs.lib.nixosSystem {
|
vm = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
{ nixpkgs.overlays = overlays; }
|
{ nixpkgs.overlays = baseOverlays; }
|
||||||
./hosts/vm/configuration.nix
|
./hosts/vm/configuration.nix
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
];
|
];
|
||||||
@@ -142,7 +143,7 @@
|
|||||||
mtworx = nixpkgs.lib.nixosSystem {
|
mtworx = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
{ nixpkgs.overlays = overlays; }
|
{ nixpkgs.overlays = baseOverlays; }
|
||||||
./hosts/mtworx/configuration.nix
|
./hosts/mtworx/configuration.nix
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
nixos-hardware.nixosModules.lenovo-thinkpad-x1-11th-gen
|
nixos-hardware.nixosModules.lenovo-thinkpad-x1-11th-gen
|
||||||
@@ -160,7 +161,7 @@
|
|||||||
fwminex = nixpkgs.lib.nixosSystem {
|
fwminex = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
{ nixpkgs.overlays = overlays; }
|
{ nixpkgs.overlays = baseOverlays; }
|
||||||
./hosts/fwminex/configuration.nix
|
./hosts/fwminex/configuration.nix
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
nixos-hardware.nixosModules.framework-12th-gen-intel
|
nixos-hardware.nixosModules.framework-12th-gen-intel
|
||||||
@@ -177,7 +178,7 @@
|
|||||||
vno3-nk = nixpkgs.lib.nixosSystem {
|
vno3-nk = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
{ nixpkgs.overlays = overlays; }
|
{ nixpkgs.overlays = baseOverlays; }
|
||||||
./hosts/vno3-nk/configuration.nix
|
./hosts/vno3-nk/configuration.nix
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
@@ -192,7 +193,7 @@
|
|||||||
vno1-gdrx = nixpkgs.lib.nixosSystem {
|
vno1-gdrx = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
{ nixpkgs.overlays = overlays; }
|
{ nixpkgs.overlays = baseOverlays; }
|
||||||
./hosts/vno1-gdrx/configuration.nix
|
./hosts/vno1-gdrx/configuration.nix
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
nix-index-database.nixosModules.nix-index
|
nix-index-database.nixosModules.nix-index
|
||||||
@@ -209,7 +210,7 @@
|
|||||||
fra1-c = nixpkgs.lib.nixosSystem {
|
fra1-c = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
modules = [
|
modules = [
|
||||||
{ nixpkgs.overlays = overlays; }
|
{ nixpkgs.overlays = baseOverlays; }
|
||||||
agenix.nixosModules.default
|
agenix.nixosModules.default
|
||||||
home-manager.nixosModules.home-manager
|
home-manager.nixosModules.home-manager
|
||||||
./hosts/fra1-c/configuration.nix
|
./hosts/fra1-c/configuration.nix
|
||||||
@@ -299,7 +300,10 @@
|
|||||||
// flake-utils.lib.eachDefaultSystem (
|
// flake-utils.lib.eachDefaultSystem (
|
||||||
system:
|
system:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { inherit system overlays; };
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
overlays = baseOverlays;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
devShells.default = pkgs.mkShellNoCC {
|
devShells.default = pkgs.mkShellNoCC {
|
||||||
@@ -321,7 +325,7 @@
|
|||||||
// (
|
// (
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs {
|
pkgs = import nixpkgs {
|
||||||
inherit overlays;
|
overlays = baseOverlays;
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
|
|||||||
@@ -33,6 +33,10 @@ in
|
|||||||
type = bool;
|
type = bool;
|
||||||
default = false;
|
default = false;
|
||||||
};
|
};
|
||||||
|
wrapGo = lib.mkOption {
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
};
|
||||||
email = lib.mkOption {
|
email = lib.mkOption {
|
||||||
type = nullOr str;
|
type = nullOr str;
|
||||||
default = "motiejus@jakstys.lt";
|
default = "motiejus@jakstys.lt";
|
||||||
@@ -86,7 +90,7 @@ in
|
|||||||
inherit lib;
|
inherit lib;
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
inherit (config.mj) stateVersion username;
|
inherit (config.mj) stateVersion username;
|
||||||
inherit (cfg) devTools email;
|
inherit (cfg) devTools email wrapGo;
|
||||||
hmOnly = false;
|
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,
|
devTools,
|
||||||
hmOnly,
|
hmOnly,
|
||||||
username,
|
username,
|
||||||
|
wrapGo ? false,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
@@ -30,8 +31,13 @@ in
|
|||||||
(lib.mkIf devTools [
|
(lib.mkIf devTools [
|
||||||
universal-ctags
|
universal-ctags
|
||||||
|
|
||||||
|
(
|
||||||
|
if wrapGo then
|
||||||
|
pkgs.go-raceless.override { inherit (pkgs.pkgs-unstable) go; }
|
||||||
|
else
|
||||||
|
pkgs.pkgs-unstable.go
|
||||||
|
)
|
||||||
pkgs-unstable.delve
|
pkgs-unstable.delve
|
||||||
pkgs-unstable.go_1_25
|
|
||||||
pkgs-unstable.go-tools
|
pkgs-unstable.go-tools
|
||||||
pkgs.zigpkgs."0.15.1"
|
pkgs.zigpkgs."0.15.1"
|
||||||
])
|
])
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
mj.base.users.email = null;
|
mj.base.users = {
|
||||||
|
email = null;
|
||||||
|
wrapGo = true;
|
||||||
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
#swc
|
#swc
|
||||||
|
|||||||
Reference in New Issue
Block a user