uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
115
nixos/modules/services/networking/shout.nix
Normal file
115
nixos/modules/services/networking/shout.nix
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
{ pkgs, lib, config, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.shout;
|
||||
shoutHome = "/var/lib/shout";
|
||||
|
||||
defaultConfig = pkgs.runCommand "config.js" { preferLocalBuild = true; } ''
|
||||
EDITOR=true ${pkgs.shout}/bin/shout config --home $PWD
|
||||
mv config.js $out
|
||||
'';
|
||||
|
||||
finalConfigFile = if (cfg.configFile != null) then cfg.configFile else ''
|
||||
var _ = require('${pkgs.shout}/lib/node_modules/shout/node_modules/lodash')
|
||||
|
||||
module.exports = _.merge(
|
||||
{},
|
||||
require('${defaultConfig}'),
|
||||
${builtins.toJSON cfg.config}
|
||||
)
|
||||
'';
|
||||
|
||||
in {
|
||||
options.services.shout = {
|
||||
enable = mkEnableOption "Shout web IRC client";
|
||||
|
||||
private = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Make your shout instance private. You will need to configure user
|
||||
accounts by adding entries in <filename>${shoutHome}/users</filename>.
|
||||
'';
|
||||
};
|
||||
|
||||
listenAddress = mkOption {
|
||||
type = types.str;
|
||||
default = "0.0.0.0";
|
||||
description = "IP interface to listen on for http connections.";
|
||||
};
|
||||
|
||||
port = mkOption {
|
||||
type = types.port;
|
||||
default = 9000;
|
||||
description = "TCP port to listen on for http connections.";
|
||||
};
|
||||
|
||||
configFile = mkOption {
|
||||
type = types.nullOr types.lines;
|
||||
default = null;
|
||||
description = ''
|
||||
Contents of Shout's <filename>config.js</filename> file.
|
||||
|
||||
Used for backward compatibility, recommended way is now to use
|
||||
the <literal>config</literal> option.
|
||||
|
||||
Documentation: http://shout-irc.com/docs/server/configuration.html
|
||||
'';
|
||||
};
|
||||
|
||||
config = mkOption {
|
||||
default = {};
|
||||
type = types.attrs;
|
||||
example = {
|
||||
displayNetwork = false;
|
||||
defaults = {
|
||||
name = "Your Network";
|
||||
host = "localhost";
|
||||
port = 6697;
|
||||
};
|
||||
};
|
||||
description = ''
|
||||
Shout <filename>config.js</filename> contents as attribute set (will be
|
||||
converted to JSON to generate the configuration file).
|
||||
|
||||
The options defined here will be merged to the default configuration file.
|
||||
|
||||
Documentation: http://shout-irc.com/docs/server/configuration.html
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.users.shout = {
|
||||
isSystemUser = true;
|
||||
group = "shout";
|
||||
description = "Shout daemon user";
|
||||
home = shoutHome;
|
||||
createHome = true;
|
||||
};
|
||||
users.groups.shout = {};
|
||||
|
||||
systemd.services.shout = {
|
||||
description = "Shout web IRC client";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
after = [ "network-online.target" ];
|
||||
preStart = "ln -sf ${pkgs.writeText "config.js" finalConfigFile} ${shoutHome}/config.js";
|
||||
script = concatStringsSep " " [
|
||||
"${pkgs.shout}/bin/shout"
|
||||
(if cfg.private then "--private" else "--public")
|
||||
"--port" (toString cfg.port)
|
||||
"--host" (toString cfg.listenAddress)
|
||||
"--home" shoutHome
|
||||
];
|
||||
serviceConfig = {
|
||||
User = "shout";
|
||||
ProtectHome = "true";
|
||||
ProtectSystem = "full";
|
||||
PrivateTmp = "true";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue