Skip to content

Commit

Permalink
irssi: format using nixfmt
Browse files Browse the repository at this point in the history
  • Loading branch information
rycee committed Oct 31, 2021
1 parent 34327e0 commit 275f955
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 57 deletions.
7 changes: 2 additions & 5 deletions format
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,9 @@ case $1 in
;;
esac

# The first block of excludes are files where nixfmt does a poor job,
# IMHO. The second block of excludes are files touched by open pull
# requests and we want to avoid merge conflicts.
# The excludes are for files touched by open pull requests and we want
# to avoid merge conflicts.
find . -name '*.nix' \
! -path ./modules/programs/irssi.nix \
\
! -path ./home-manager/home-manager.nix \
! -path ./modules/default.nix \
! -path ./modules/files.nix \
Expand Down
103 changes: 51 additions & 52 deletions modules/programs/irssi.nix
Original file line number Diff line number Diff line change
Expand Up @@ -7,53 +7,51 @@ let
cfg = config.programs.irssi;

boolStr = b: if b then "yes" else "no";
quoteStr = s: escape ["\""] s;
quoteStr = s: escape [ ''"'' ] s;

assignFormat = set:
concatStringsSep "\n"
(mapAttrsToList (k: v: " ${k} = \"${quoteStr v}\";") set);
# Comma followed by newline.
cnl = ''
,
'';

chatnetString =
assignFormat = set:
concatStringsSep "\n"
(flip mapAttrsToList cfg.networks
(k: v: ''
${k} = {
type = "${v.type}";
nick = "${quoteStr v.nick}";
autosendcmd = "${concatMapStringsSep ";" quoteStr v.autoCommands}";
};
''));

serversString =
concatStringsSep ",\n"
(flip mapAttrsToList cfg.networks
(k: v: ''
{
chatnet = "${k}";
address = "${v.server.address}";
port = "${toString v.server.port}";
use_ssl = "${boolStr v.server.ssl.enable}";
ssl_verify = "${boolStr v.server.ssl.verify}";
autoconnect = "${boolStr v.server.autoConnect}";
${lib.optionalString (v.server.ssl.certificateFile != null) ''
ssl_cert = "${v.server.ssl.certificateFile}";
''}
(mapAttrsToList (k: v: " ${k} = \"${quoteStr v}\";") set);

chatnetString = concatStringsSep "\n" (flip mapAttrsToList cfg.networks
(k: v: ''
${k} = {
type = "${v.type}";
nick = "${quoteStr v.nick}";
autosendcmd = "${concatMapStringsSep ";" quoteStr v.autoCommands}";
};
''));

serversString = concatStringsSep cnl (flip mapAttrsToList cfg.networks
(k: v: ''
{
chatnet = "${k}";
address = "${v.server.address}";
port = "${toString v.server.port}";
use_ssl = "${boolStr v.server.ssl.enable}";
ssl_verify = "${boolStr v.server.ssl.verify}";
autoconnect = "${boolStr v.server.autoConnect}";
${
lib.optionalString (v.server.ssl.certificateFile != null) ''
ssl_cert = "${v.server.ssl.certificateFile}";
''
}
''));

channelString =
concatStringsSep ",\n"
(flip mapAttrsToList cfg.networks
(k: v:
concatStringsSep ",\n"
(flip mapAttrsToList v.channels
(c: cv: ''
{
chatnet = "${k}";
name = "${c}";
autojoin = "${boolStr cv.autoJoin}";
}
''))));
}
''));

channelString = concatStringsSep cnl (flip mapAttrsToList cfg.networks (k: v:
concatStringsSep cnl (flip mapAttrsToList v.channels (c: cv: ''
{
chatnet = "${k}";
name = "${c}";
autojoin = "${boolStr cv.autoJoin}";
}
''))));

channelType = types.submodule {
options = {
Expand All @@ -72,7 +70,7 @@ let
};
};

networkType = types.submodule ({ name, ...}: {
networkType = types.submodule ({ name, ... }: {
options = {
name = mkOption {
visible = false;
Expand All @@ -93,7 +91,7 @@ let

autoCommands = mkOption {
type = types.listOf types.str;
default = [];
default = [ ];
description = "List of commands to execute on connect.";
};

Expand Down Expand Up @@ -142,14 +140,12 @@ let
channels = mkOption {
description = "Channels for the given network.";
type = types.attrsOf channelType;
default = {};
default = { };
};
};
});

in

{
in {

options = {
programs.irssi = {
Expand All @@ -162,14 +158,17 @@ in
};

aliases = mkOption {
default = {};
example = { J = "join"; BYE = "quit";};
default = { };
example = {
J = "join";
BYE = "quit";
};
description = "An attribute set that maps aliases to commands.";
type = types.attrsOf types.str;
};

networks = mkOption {
default = {};
default = { };
example = literalExpression ''
{
freenode = {
Expand Down

0 comments on commit 275f955

Please sign in to comment.