aboutsummaryrefslogtreecommitdiff
path: root/workadventure-nix.nix
blob: 4c515cb93a9a741b387ef6251654041abf63db35 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# WorkAdventure packaging effort by SuperSandro2000, not yet upstreamed into nixpkgs.

{ lib, ... }:


let
  pkgs = import <nixpkgs> {};

  src = pkgs.fetchgit {
    url = "https://gitlab.infra4future.de/stuebinm/workadventure-nix";
    rev = "71ed23142c5ab6db05263b6e5c52f8fab1d84425";
    sha256 = "0g20rzaxp5md26hc3dig4hhp296bd45n1zi3b67a8q0l290ydn2g";
  };

  # Use a fixed-point operator to build a nixpkgs-like structure that contains all
  # workadventure derivation.
  wapkgs = lib.fix (self: let
    callPackage = lib.callPackageWith (pkgs // self);
  in {
    workadventure-pusher = callPackage "${src}/pusher" {};
    workadventure-back = callPackage "${src}/back" {};
    workadventure-front = callPackage "${src}/front" {};
    workadventure-messages = callPackage "${src}/messages" {};
    workadventure-maps = callPackage "${src}/maps" {};
  });

# Build public attrset of all accessible components.
in rec {
  pusher = wapkgs.workadventure-pusher;
  back = wapkgs.workadventure-back;
  front = wapkgs.workadventure-front;
  maps = wapkgs.workadventure-maps;
}