Add getting started docs
This commit is contained in:
parent
759483247e
commit
59869b91af
1 changed files with 79 additions and 0 deletions
79
docs/getting-started.md
Normal file
79
docs/getting-started.md
Normal file
|
@ -0,0 +1,79 @@
|
|||
# Getting started with Gomod2nix
|
||||
|
||||
## Installation
|
||||
|
||||
### Using Niv
|
||||
|
||||
First initialize Niv:
|
||||
``` bash
|
||||
$ niv init --latest
|
||||
$ niv add tweag/gomod2nix
|
||||
```
|
||||
|
||||
Create a `shell.nix` used for development:
|
||||
``` nix
|
||||
{ pkgs ? (
|
||||
let
|
||||
sources = import ./nix/sources.nix;
|
||||
in
|
||||
import sources.nixpkgs {
|
||||
overlays = [
|
||||
(import "${sources.gomod2nix}/overlay.nix")
|
||||
];
|
||||
}
|
||||
)
|
||||
}:
|
||||
|
||||
let
|
||||
goEnv = pkgs.mkGoEnv { pwd = ./.; };
|
||||
in
|
||||
pkgs.mkShell {
|
||||
packages = [
|
||||
goEnv
|
||||
pkgs.gomod2nix
|
||||
pkgs.niv
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
And a `default.nix` for building your package
|
||||
``` nix
|
||||
{ pkgs ? (
|
||||
let
|
||||
sources = import ./nix/sources.nix;
|
||||
in
|
||||
import sources.nixpkgs {
|
||||
overlays = [
|
||||
(import "${sources.gomod2nix}/overlay.nix")
|
||||
];
|
||||
}
|
||||
)
|
||||
}:
|
||||
|
||||
pkgs.buildGoApplication {
|
||||
pname = "myapp";
|
||||
version = "0.1";
|
||||
pwd = ./.;
|
||||
src = ./.;
|
||||
modules = ./gomod2nix.toml;
|
||||
}
|
||||
```
|
||||
|
||||
### Using Flakes
|
||||
|
||||
The quickest way to get started if using Nix Flakes is to use the Flake template:
|
||||
``` bash
|
||||
$ nix flake init -t github:tweag/gomod2nix#app
|
||||
```
|
||||
|
||||
## Basic usage
|
||||
|
||||
After you have entered your development shell you can generate a `gomod2nix.toml` using:
|
||||
``` bash
|
||||
$ gomod2nix generate
|
||||
```
|
||||
|
||||
To speed up development and avoid downloading dependencies again in the Nix store you can import them directly from the Go cache using:
|
||||
``` bash
|
||||
$ gomod2nix import
|
||||
```
|
Loading…
Reference in a new issue