This commit is contained in:
2023-11-25 01:11:59 +00:00
parent 6d24c10c25
commit dcd1d76783

View File

@@ -18,16 +18,17 @@
inherit system; inherit system;
}; };
beamPackages = pkgs.beam.packagesWith pkgs.beam.interpreters.erlang_26; lib = pkgs.lib;
beamPackages = pkgs.beam.packagesWith pkgs.beam.interpreters.erlang_26;
erlang = beamPackages.erlang; erlang = beamPackages.erlang;
elixir = beamPackages.elixir_1_15; elixir = beamPackages.elixir_1_15;
elixir-ls = beamPackages.elixir-ls.override { elixir = elixir; }; elixir-ls = beamPackages.elixir-ls.override {elixir = elixir;};
hex = beamPackages.hex; hex = beamPackages.hex;
rebar3 = beamPackages.rebar3; rebar3 = beamPackages.rebar3;
rebar = beamPackages.rebar; rebar = beamPackages.rebar;
@@ -37,12 +38,12 @@
modules = [ modules = [
{ {
packages = [ packages = [
elixir elixir
elixir-ls elixir-ls
erlang erlang
hex hex
rebar rebar
rebar3 rebar3
pkgs.inotify-tools pkgs.inotify-tools
pkgs.sqlite pkgs.sqlite
]; ];
@@ -50,18 +51,60 @@
]; ];
}; };
packages.default = beamPackages.mixRelease rec { packages.default = beamPackages.mixRelease rec {
pname = "wish"; pname = "wish";
version = "nightly-231124"; version = "nightly-231124";
src = ./.; src = ./.;
mixFodDeps = fetchMixDeps { postUnpack = ''
inherit src version; export ELIXIR_MAKE_CACHE_DIR=$TMP
pname = "mix-deps-${pname}"; '';
hash = lib.fakeHash;
}; mixFodDeps = beamPackages.fetchMixDeps {
}; inherit src version;
pname = "mix-deps-${pname}";
hash = "sha256-W/peopoh52iM3K068eu5gQ9dsKJTIVZ+5M6lZjP+vcE=";
};
};
nixosModules.default = {
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.wish.service;
in {
options.wish.service = {
enable = mkEnableOption "Enable the wish service.";
environmentFile = mkOption {
type = types.path;
description = lib.mdDoc ''
Environment file as defined in {manpage}`systemd.exec(5)` passed to the service.
This must contain at least `LIVEBOOK_PASSWORD` or
`LIVEBOOK_TOKEN_ENABLED=false`. See `livebook server --help`
for other options.'';
};
};
config = mkIf cfg.enable {
systemd.services."wish" = {
wantedBy = ["multi-user.target"];
serviceConfig = let
pkg = self.packages.${system}.default;
in {
EnvironmentFile = cfg.environmentFile;
Restart = "on-failure";
ExecStart = "${pkg}/bin/wish start";
};
};
};
};
} }
); );
} }