Add common dev environment in Nix

This commit is contained in:
Vojtěch Káně
2021-01-21 18:18:44 +01:00
parent 28e22e3422
commit 84131562a9
3 changed files with 54 additions and 12 deletions

12
db.nix
View File

@@ -1,12 +0,0 @@
with
import (builtins.fetchTarball {
url = "https://github.com/nixos/nixpkgs/archive/4d373182597cff60b3a820affb5a73dd274e205b.tar.gz";
sha256 = "1kvsnlsq1czgk085rllg1b427n6lv5w3a2z1igfc95n81jpvcf58";
}) {};
let
in
stdenv.mkDerivation rec {
name = "tinyquiz-db-env";
buildInputs = [ postgresql ];
}

27
flake.lock generated Normal file
View File

@@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1611053426,
"narHash": "sha256-ZYcn9Jz7S3Ib3PPcPsn6lE9HGtH5ofacOYsu/puZd9o=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "646f528cce6db1f89f6e635a7589bf1be6169ffb",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-20.09",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

27
flake.nix Normal file
View File

@@ -0,0 +1,27 @@
{
description = "Tinyquiz an open source online quiz platform";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-20.09";
outputs = { self, nixpkgs }:
let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
in
{
defaultPackage.x86_64-linux = self.packages.x86_64-linux.tinyquiz;
packages.x86_64-linux.tinyquiz = pkgs.hello; # TODO
packages.x86_64-linux.dev = pkgs.writeShellScriptBin "dev" ''
echo "This dev script must be run from the project root, otherwise unexpected behavior might occur."
read -p "Are you in the right directory and shall I continue? (y/n): " ack
if [ "$ack" != y ]; then exit 1; fi
unset GOROOT # Use the one bundled into the binary. I don't currently know who sets this to the wrong one
'${pkgs.findutils}/bin/find' cmd pkg ui/html | '${pkgs.entr}/bin/entr' -dr '${pkgs.go_1_14}/bin/go' run ./cmd/web
'';
packages.x86_64-linux.devDb = pkgs.writeShellScriptBin "devDb" ''
'${pkgs.postgresql}/bin/postgres' -D .pg-data -k "$PWD/.pg-sockets" #-c listen_addresses="" # Goland does not support connecting over socket
'';
};
}