50 lines
990 B
Nix
50 lines
990 B
Nix
{
|
|
description = "Development Environment";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs =
|
|
{ self
|
|
, nixpkgs
|
|
, flake-utils
|
|
,
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (
|
|
system:
|
|
let
|
|
pkgs = (
|
|
import nixpkgs {
|
|
system = system;
|
|
config.allowUnfree = true;
|
|
}
|
|
);
|
|
|
|
oc = pkgs.writeShellScriptBin "oc" ''
|
|
PRJ_ROOT=$(git rev-parse --show-toplevel 2>/dev/null || pwd)
|
|
cd "$PRJ_ROOT" && OPENCODE_EXPERIMENTAL_LSP_TOOL=true opencode
|
|
'';
|
|
in
|
|
{
|
|
devShells.default = pkgs.mkShell {
|
|
packages = with pkgs; [
|
|
# Backend
|
|
go
|
|
gopls
|
|
golangci-lint
|
|
|
|
# Frontend
|
|
bun
|
|
watchman
|
|
tailwindcss_4
|
|
|
|
# Custom Commands
|
|
oc
|
|
];
|
|
};
|
|
}
|
|
);
|
|
}
|