irssi: format using nixfmt

This commit is contained in:
Robert Helgesson 2021-10-31 10:32:58 +01:00
parent 34327e067f
commit 275f955db9
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
2 changed files with 50 additions and 54 deletions

7
format
View File

@ -12,12 +12,9 @@ case $1 in
;; ;;
esac esac
# The first block of excludes are files where nixfmt does a poor job, # The excludes are for files touched by open pull requests and we want
# IMHO. The second block of excludes are files touched by open pull # to avoid merge conflicts.
# requests and we want to avoid merge conflicts.
find . -name '*.nix' \ find . -name '*.nix' \
! -path ./modules/programs/irssi.nix \
\
! -path ./home-manager/home-manager.nix \ ! -path ./home-manager/home-manager.nix \
! -path ./modules/default.nix \ ! -path ./modules/default.nix \
! -path ./modules/files.nix \ ! -path ./modules/files.nix \

View File

@ -7,53 +7,51 @@ let
cfg = config.programs.irssi; cfg = config.programs.irssi;
boolStr = b: if b then "yes" else "no"; boolStr = b: if b then "yes" else "no";
quoteStr = s: escape ["\""] s; quoteStr = s: escape [ ''"'' ] s;
# Comma followed by newline.
cnl = ''
,
'';
assignFormat = set: assignFormat = set:
concatStringsSep "\n" concatStringsSep "\n"
(mapAttrsToList (k: v: " ${k} = \"${quoteStr v}\";") set); (mapAttrsToList (k: v: " ${k} = \"${quoteStr v}\";") set);
chatnetString = chatnetString = concatStringsSep "\n" (flip mapAttrsToList cfg.networks
concatStringsSep "\n" (k: v: ''
(flip mapAttrsToList cfg.networks ${k} = {
(k: v: '' type = "${v.type}";
${k} = { nick = "${quoteStr v.nick}";
type = "${v.type}"; autosendcmd = "${concatMapStringsSep ";" quoteStr v.autoCommands}";
nick = "${quoteStr v.nick}"; };
autosendcmd = "${concatMapStringsSep ";" quoteStr v.autoCommands}"; ''));
};
''));
serversString = serversString = concatStringsSep cnl (flip mapAttrsToList cfg.networks
concatStringsSep ",\n" (k: v: ''
(flip mapAttrsToList cfg.networks {
(k: v: '' chatnet = "${k}";
{ address = "${v.server.address}";
chatnet = "${k}"; port = "${toString v.server.port}";
address = "${v.server.address}"; use_ssl = "${boolStr v.server.ssl.enable}";
port = "${toString v.server.port}"; ssl_verify = "${boolStr v.server.ssl.verify}";
use_ssl = "${boolStr v.server.ssl.enable}"; autoconnect = "${boolStr v.server.autoConnect}";
ssl_verify = "${boolStr v.server.ssl.verify}"; ${
autoconnect = "${boolStr v.server.autoConnect}"; lib.optionalString (v.server.ssl.certificateFile != null) ''
${lib.optionalString (v.server.ssl.certificateFile != null) '' ssl_cert = "${v.server.ssl.certificateFile}";
ssl_cert = "${v.server.ssl.certificateFile}"; ''
''}
} }
'')); }
''));
channelString = channelString = concatStringsSep cnl (flip mapAttrsToList cfg.networks (k: v:
concatStringsSep ",\n" concatStringsSep cnl (flip mapAttrsToList v.channels (c: cv: ''
(flip mapAttrsToList cfg.networks {
(k: v: chatnet = "${k}";
concatStringsSep ",\n" name = "${c}";
(flip mapAttrsToList v.channels autojoin = "${boolStr cv.autoJoin}";
(c: cv: '' }
{ ''))));
chatnet = "${k}";
name = "${c}";
autojoin = "${boolStr cv.autoJoin}";
}
''))));
channelType = types.submodule { channelType = types.submodule {
options = { options = {
@ -72,7 +70,7 @@ let
}; };
}; };
networkType = types.submodule ({ name, ...}: { networkType = types.submodule ({ name, ... }: {
options = { options = {
name = mkOption { name = mkOption {
visible = false; visible = false;
@ -93,7 +91,7 @@ let
autoCommands = mkOption { autoCommands = mkOption {
type = types.listOf types.str; type = types.listOf types.str;
default = []; default = [ ];
description = "List of commands to execute on connect."; description = "List of commands to execute on connect.";
}; };
@ -142,14 +140,12 @@ let
channels = mkOption { channels = mkOption {
description = "Channels for the given network."; description = "Channels for the given network.";
type = types.attrsOf channelType; type = types.attrsOf channelType;
default = {}; default = { };
}; };
}; };
}); });
in in {
{
options = { options = {
programs.irssi = { programs.irssi = {
@ -162,14 +158,17 @@ in
}; };
aliases = mkOption { aliases = mkOption {
default = {}; default = { };
example = { J = "join"; BYE = "quit";}; example = {
J = "join";
BYE = "quit";
};
description = "An attribute set that maps aliases to commands."; description = "An attribute set that maps aliases to commands.";
type = types.attrsOf types.str; type = types.attrsOf types.str;
}; };
networks = mkOption { networks = mkOption {
default = {}; default = { };
example = literalExpression '' example = literalExpression ''
{ {
freenode = { freenode = {