64 lines
1.7 KiB
Nix
64 lines
1.7 KiB
Nix
{
|
|
description = "Go development environment";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
};
|
|
|
|
outputs =
|
|
{
|
|
self,
|
|
nixpkgs,
|
|
flake-utils,
|
|
}:
|
|
flake-utils.lib.eachDefaultSystem (
|
|
system:
|
|
let
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
in
|
|
{
|
|
devShells.default = pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
go
|
|
gotools
|
|
gopls
|
|
go-outline
|
|
gocode-gomod
|
|
gopkgs
|
|
godef
|
|
golint
|
|
air
|
|
|
|
postgresql
|
|
pgcli
|
|
|
|
migrate
|
|
|
|
docker
|
|
docker-compose
|
|
|
|
jq
|
|
curl
|
|
just
|
|
];
|
|
|
|
shellHook = ''
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo "🚀 Go Development Environment"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo "Go version: $(go version | cut -d' ' -f3)"
|
|
echo "PostgreSQL: $(postgres --version | cut -d' ' -f3)"
|
|
echo ""
|
|
echo "Quick commands:"
|
|
echo " docker-compose up -d # Start Postgres"
|
|
echo " docker-compose down # Stop Postgres"
|
|
echo " just migrate-up # Run migrations"
|
|
echo " just run # Run the API"
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
'';
|
|
};
|
|
}
|
|
);
|
|
}
|