-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathflake.nix
More file actions
74 lines (55 loc) · 1.68 KB
/
flake.nix
File metadata and controls
74 lines (55 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
{
description = "Ledo flake";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
outputs = { self, nixpkgs, ... }:
let
system = builtins.currentSystem or (if builtins ? currentSystem then builtins.currentSystem else "aarch64-darwin");
pkgs = import nixpkgs { inherit system; };
goVersion = "1.24"; # zmień jeśli chcesz inną wersję
goPkgs = {
"1.24" = pkgs.go_1_24;
"1.23" = pkgs.go_1_23;
"1.22" = pkgs.go_1_22;
"1.21" = pkgs.go_1_21;
};
selectedGo = if goPkgs ? ${goVersion}
then goPkgs.${goVersion}
else pkgs.go;
printInfo = ''
echo -e "\033[32m🚀 LeDo | Using Go version ${goVersion}\033[0m"
'';
in
{
devShells.${system}.default = pkgs.mkShell {
name = "golang-devshell";
packages = with pkgs; [
selectedGo
gopls # Go Language Server (dla IDE / autouzupełnianie)
golangci-lint # Linter
delve # Debugger
git
jq
];
shellHook = ''
${printInfo}
echo -e "\033[34m🛠️ Environment: DEVELOPMENT\033[0m"
'';
};
packages.${system}.default = pkgs.buildGoModule {
pname = "ledo";
version = "0.1.0";
src = ./.;
vendorHash = "sha256-Xn7icXrEKQuJAGiSyReYGoNdPAsIziEq1KHvXc6HEPU=";
modVendor = true;
buildFlags = [ "-v -mod=vendor" ];
ldflags = [
"-s" "-w"
"-X main.version=0.1.0"
];
meta = {
description = "Ledo built via Flake";
license = pkgs.lib.licenses.mit;
};
};
};
}