parent
4440cf6d81
commit
47d81ed347
@ -0,0 +1,62 @@ |
||||
{ config, pkgs, lib, ... } @ args: |
||||
|
||||
with lib; |
||||
|
||||
let |
||||
cfg = config.services.leaps; |
||||
stateDir = "/var/lib/leaps/"; |
||||
in |
||||
{ |
||||
options = { |
||||
services.leaps = { |
||||
enable = mkEnableOption "leaps"; |
||||
port = mkOption { |
||||
type = types.int; |
||||
default = 8080; |
||||
description = "A port where leaps listens for incoming http requests"; |
||||
}; |
||||
address = mkOption { |
||||
default = ""; |
||||
type = types.str; |
||||
example = "127.0.0.1"; |
||||
description = "Hostname or IP-address to listen to. By default it will listen on all interfaces."; |
||||
}; |
||||
path = mkOption { |
||||
default = "/"; |
||||
type = types.path; |
||||
description = "Subdirectory used for reverse proxy setups"; |
||||
}; |
||||
}; |
||||
}; |
||||
|
||||
config = mkIf cfg.enable { |
||||
users = { |
||||
users.leaps = { |
||||
uid = config.ids.uids.leaps; |
||||
description = "Leaps server user"; |
||||
group = "leaps"; |
||||
home = stateDir; |
||||
createHome = true; |
||||
}; |
||||
|
||||
groups.leaps = { |
||||
gid = config.ids.gids.leaps; |
||||
}; |
||||
}; |
||||
|
||||
systemd.services.leaps = { |
||||
description = "leaps service"; |
||||
wantedBy = [ "multi-user.target" ]; |
||||
after = [ "network.target" ]; |
||||
|
||||
serviceConfig = { |
||||
User = "leaps"; |
||||
Group = "leaps"; |
||||
Restart = "on-failure"; |
||||
WorkingDirectory = stateDir; |
||||
PrivateTmp = true; |
||||
ExecStart = "${pkgs.leaps.bin}/bin/leaps -path ${toString cfg.path} -address ${cfg.address}:${toString cfg.port}"; |
||||
}; |
||||
}; |
||||
}; |
||||
} |
@ -0,0 +1,29 @@ |
||||
import ./make-test.nix ({ pkgs, ... }: |
||||
|
||||
{ |
||||
name = "leaps"; |
||||
meta = with pkgs.stdenv.lib.maintainers; { |
||||
maintainers = [ qknight ]; |
||||
}; |
||||
|
||||
nodes = |
||||
{ |
||||
client = { }; |
||||
|
||||
server = |
||||
{ services.leaps = { |
||||
enable = true; |
||||
port = 6666; |
||||
path = "/leaps/"; |
||||
}; |
||||
networking.firewall.enable = false; |
||||
}; |
||||
}; |
||||
|
||||
testScript = |
||||
'' |
||||
startAll; |
||||
$server->waitForOpenPort(6666); |
||||
$client->succeed("curl http://server:6666/leaps/ | grep -i 'leaps'"); |
||||
''; |
||||
}) |
@ -1,26 +1,26 @@ |
||||
{ stdenv, buildGoPackage, fetchgit, fetchhg, fetchbzr, fetchsvn }: |
||||
{ stdenv, buildGoPackage, fetchFromGitHub, fetchhg, fetchbzr, fetchsvn }: |
||||
|
||||
buildGoPackage rec { |
||||
name = "leaps-${version}"; |
||||
version = "20160626-${stdenv.lib.strings.substring 0 7 rev}"; |
||||
rev = "5cf7328a8c498041d2a887e89f22f138498f4621"; |
||||
version = "0.5.1"; |
||||
|
||||
goPackagePath = "github.com/jeffail/leaps"; |
||||
|
||||
src = fetchgit { |
||||
inherit rev; |
||||
url = "https://github.com/jeffail/leaps"; |
||||
sha256 = "1qbgz48x9yi0w9yz39zsnnhx5nx2xmrns9v8hx28jah2bvag6sq7"; |
||||
fetchSubmodules = false; |
||||
src = fetchFromGitHub { |
||||
owner = "jeffail"; |
||||
repo = "leaps"; |
||||
sha256 = "0w63y777h5qc8fwnkrbawn3an9px0l1zz3649x0n8lhk125fvchj"; |
||||
rev = "v${version}"; |
||||
}; |
||||
|
||||
goDeps = ./deps.nix; |
||||
|
||||
meta = { |
||||
description = "A pair programming tool and library written in Golang"; |
||||
homepage = "https://github.com/jeffail/leaps/"; |
||||
license = "MIT"; |
||||
maintainers = with stdenv.lib.maintainers; [ qknight ]; |
||||
meta.platforms = stdenv.lib.platforms.linux; |
||||
broken = true; |
||||
}; |
||||
} |
||||
|
||||
|
@ -1,11 +1,94 @@ |
||||
[ |
||||
{ |
||||
goPackagePath = "golang.org/x/net"; |
||||
goPackagePath = "github.com/amir/raidman"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://go.googlesource.com/net"; |
||||
rev = "07b51741c1d6423d4a6abab1c49940ec09cb1aaf"; |
||||
sha256 = "12lvdj0k2gww4hw5f79qb9yswqpy4i3bgv1likmf3mllgdxfm20w"; |
||||
url = "https://github.com/amir/raidman"; |
||||
rev = "91c20f3f475cab75bb40ad7951d9bbdde357ade7"; |
||||
sha256 = "0pkqy5hzjkk04wj1ljq8jsyla358ilxi4lkmvkk73b3dh2wcqvpp"; |
||||
}; |
||||
} |
||||
{ |
||||
goPackagePath = "github.com/elazarl/go-bindata-assetfs"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://github.com/elazarl/go-bindata-assetfs"; |
||||
rev = "57eb5e1fc594ad4b0b1dbea7b286d299e0cb43c2"; |
||||
sha256 = "1za29pa15y2xsa1lza97jlkax9qj93ks4a2j58xzmay6rczfkb9i"; |
||||
}; |
||||
} |
||||
{ |
||||
goPackagePath = "github.com/garyburd/redigo"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://github.com/garyburd/redigo"; |
||||
rev = "8873b2f1995f59d4bcdd2b0dc9858e2cb9bf0c13"; |
||||
sha256 = "1lzhb99pcwwf5ddcs0bw00fwf9m1d0k7b92fqz2a01jlij4pm5l2"; |
||||
}; |
||||
} |
||||
{ |
||||
goPackagePath = "github.com/go-sql-driver/mysql"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://github.com/go-sql-driver/mysql"; |
||||
rev = "7ebe0a500653eeb1859664bed5e48dec1e164e73"; |
||||
sha256 = "1gyan3lyn2j00di9haq7zm3zcwckn922iigx3fvml6s2bsp6ljas"; |
||||
}; |
||||
} |
||||
{ |
||||
goPackagePath = "github.com/golang/protobuf"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://github.com/golang/protobuf"; |
||||
rev = "bf531ff1a004f24ee53329dfd5ce0b41bfdc17df"; |
||||
sha256 = "10lnvmq28jp2wk1xc32mdk4745lal2bmdvbjirckb9wlv07zzzf0"; |
||||
}; |
||||
} |
||||
{ |
||||
goPackagePath = "github.com/jeffail/gabs"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://github.com/jeffail/gabs"; |
||||
rev = "ee1575a53249b51d636e62464ca43a13030afdb5"; |
||||
sha256 = "0svv57193n8m86r7v7n0y9lny0p6nzr7xvz98va87h00mg146351"; |
||||
}; |
||||
} |
||||
{ |
||||
goPackagePath = "github.com/jeffail/util"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://github.com/jeffail/util"; |
||||
rev = "48ada8ff9fcae546b5986f066720daa9033ad523"; |
||||
sha256 = "0k8zz7gdv4hb691fdyb5mhlixppcq8x4ny84fanflypnv258a3i0"; |
||||
}; |
||||
} |
||||
{ |
||||
goPackagePath = "github.com/lib/pq"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://github.com/lib/pq"; |
||||
rev = "3cd0097429be7d611bb644ef85b42bfb102ceea4"; |
||||
sha256 = "1q7qfzyfgjk6rvid548r43fi4jhvsh4dhfvfjbp2pz4xqsvpsm7a"; |
||||
}; |
||||
} |
||||
{ |
||||
goPackagePath = "github.com/satori/go.uuid"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://github.com/satori/go.uuid"; |
||||
rev = "f9ab0dce87d815821e221626b772e3475a0d2749"; |
||||
sha256 = "0z18j6zxq9kw4lgcpmhh3k7jrb9gy1lx252xz5qhs4ywi9w77xwi"; |
||||
}; |
||||
} |
||||
|
||||
{ |
||||
goPackagePath = "golang.org/x/net"; |
||||
fetch = { |
||||
type = "git"; |
||||
url = "https://go.googlesource.com/net"; |
||||
rev = "07b51741c1d6423d4a6abab1c49940ec09cb1aaf"; |
||||
sha256 = "12lvdj0k2gww4hw5f79qb9yswqpy4i3bgv1likmf3mllgdxfm20w"; |
||||
}; |
||||
} |
||||
] |
||||
|
||||
|
Loading…
Reference in new issue