aboutsummaryrefslogtreecommitdiffstats
path: root/.nix/plugins.nix
blob: 270544c9568d31448889b217ec3ded7f3036d99f (plain) (blame)
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{
  pkgs,
  root,
  cargo,
  rustc,
  cargoLock,
  nativeBuildInputs,
  buildInputs,
}: let
  ignoreSource = [
    ".git"
    ".github"
    "assets"
    "docs"
    "example"
    "target"
    ".editorconfig"
    ".envrc"
    ".git-blame-ignore-revs"
    "CHANGELOG.md"
    "CODE_OF_CONDUCT.md"
    "CONTRIBUTING.md"
    "GOVERNANCE.md"
    "LICENSE.md"
    "docker-compose.yml"
  ];
  src = pkgs.nix-gitignore.gitignoreSource ignoreSource root;

  makeDefaultPlugin = name:
    (pkgs.makeRustPlatform {inherit cargo rustc;}).buildRustPackage {
      inherit
        src
        name
        cargoLock
        buildInputs
        nativeBuildInputs
        ;
      buildPhase = ''
        cargo build --package ${name} --release --target=wasm32-wasi
        mkdir -p $out/bin;
        #cp target/wasm32-wasi/release/${name}.wasm $out/bin/${name}.wasm
        wasm-opt \
        -O target/wasm32-wasi/release/${name}.wasm \
        -o $out/bin/${name}.wasm
      '';
      installPhase = ":";
      checkPhase = ":";
    };
in {
  status-bar = makeDefaultPlugin "status-bar";
  tab-bar = makeDefaultPlugin "tab-bar";
  strider = makeDefaultPlugin "strider";
  compact-bar = makeDefaultPlugin "compact-bar";
}