diff --git a/Makefile b/Makefile deleted file mode 100644 index e42acb7..0000000 --- a/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -BIN=guichet -SRC=main.go ssha.go profile.go admin.go invite.go directory.go picture.go -DOCKER=lxpz/guichet_amd64 - -all: $(BIN) - -$(BIN): $(SRC) - go get -d -v - go build -v -o $(BIN) - -$(BIN).static: $(SRC) - go get -d -v - CGO_ENABLED=0 GOOS=linux go build -a -v -o $(BIN).static - -docker: $(BIN).static - docker build -t $(DOCKER):$(TAG) . - docker push $(DOCKER):$(TAG) - docker tag $(DOCKER):$(TAG) $(DOCKER):latest - docker push $(DOCKER):latest diff --git a/README.md b/README.md index 483ea71..a21ca32 100644 --- a/README.md +++ b/README.md @@ -27,9 +27,23 @@ Guichet is licensed under the terms of the GPLv3. Guichet requires go 1.13 or later. -To build Guichet, clone this repository outside of your `$GOPATH`. -Then, run `make` in the root of the repo. +Development build: +``` +go build +``` + +Production build: + +``` +nix build +``` + +Production container: + +``` +docker run .#docker +``` ## Configuration of Guichet diff --git a/flake.nix b/flake.nix index 3b6ad3b..20b42b1 100644 --- a/flake.nix +++ b/flake.nix @@ -47,11 +47,20 @@ Entrypoint = "/bin/guichet"; }; }; + + docker = pkgs.writeScriptBin "guichet-docker" '' + #!/usr/bin/env bash + + set -euxo pipefail + docker load <$(nix build --print-out-paths .#container) + ''; + in { packages.x86_64-linux.guichet = guichet; packages.x86_64-linux.container = container; + packages.x86_64-linux.docker = docker; packages.x86_64-linux.default = guichet; - + devShell.x86_64-linux = pkgs.mkShell { nativeBuildInputs = [ pkgs.go pkgs.gomod2nix ]; }; }; }