reformat
All checks were successful
Nix build / nix-build (nixosConfigurations.apollo.config.system.build.toplevel) (push) Successful in 43s
Nix build / nix-build (nixosConfigurations.athene.config.system.build.toplevel) (push) Successful in 29s
Nix build / nix-build (nixosConfigurations.hephaistos.config.system.build.toplevel) (push) Successful in 43s
Nix build / nix-build (nixosConfigurations.hera.config.system.build.toplevel) (push) Successful in 28s
Nix build / nix-build (nixosConfigurations.zeus.config.system.build.toplevel) (push) Successful in 47s
Nix build / nix-flake-check (push) Successful in 1m5s
All checks were successful
Nix build / nix-build (nixosConfigurations.apollo.config.system.build.toplevel) (push) Successful in 43s
Nix build / nix-build (nixosConfigurations.athene.config.system.build.toplevel) (push) Successful in 29s
Nix build / nix-build (nixosConfigurations.hephaistos.config.system.build.toplevel) (push) Successful in 43s
Nix build / nix-build (nixosConfigurations.hera.config.system.build.toplevel) (push) Successful in 28s
Nix build / nix-build (nixosConfigurations.zeus.config.system.build.toplevel) (push) Successful in 47s
Nix build / nix-flake-check (push) Successful in 1m5s
This commit is contained in:
parent
4b1e47911e
commit
d555af1d4c
|
@ -8,17 +8,14 @@
|
|||
path = "${path}/${name}";
|
||||
devices = hosts;
|
||||
};
|
||||
devices =
|
||||
pkgs.lib.mapAttrs
|
||||
(name: conf: conf // { addresses = [ "tcp6://${name}.vpn.m-0.eu" ]; })
|
||||
{
|
||||
apollo.id = "BOTTTGS-QQUHWAK-IFBT3T2-HGHHUZ7-QHRZXC7-JC42VT7-67ZOJBE-WHDWEQX";
|
||||
zeus.id = "5BUZIS5-ESTYAJO-IQQD7EA-O3VGONJ-E74OHUJ-ZSLF4JK-6HS3UHG-4CQ5OAO";
|
||||
pegasus.id = "BISYPNZ-54VKBKS-LBND4AS-JNWVOW7-BTW2UMV-QHYM5TZ-GE3AK3E-PGSXPQE";
|
||||
hera.id = "TJHVUM6-RTB6V3D-JF4GIB2-TVDF2ST-5MTN6N2-ZDIWGF7-XZUCCFG-EQG5WA6";
|
||||
hephaistos.id = "M6QOG65-2VIL4IF-IP2IGHW-QAT7VSC-3V3244M-UQ7Y5A6-T2TJEAL-BP427QR";
|
||||
athene.id = "7EMUMTN-NQATI52-B67EUJP-DVB6OLE-KQSM5LJ-2HI3KX5-UJAKUTL-PAV6HQ3";
|
||||
};
|
||||
devices = pkgs.lib.mapAttrs (name: conf: conf // { addresses = [ "tcp6://${name}.vpn.m-0.eu" ]; }) {
|
||||
apollo.id = "BOTTTGS-QQUHWAK-IFBT3T2-HGHHUZ7-QHRZXC7-JC42VT7-67ZOJBE-WHDWEQX";
|
||||
zeus.id = "5BUZIS5-ESTYAJO-IQQD7EA-O3VGONJ-E74OHUJ-ZSLF4JK-6HS3UHG-4CQ5OAO";
|
||||
pegasus.id = "BISYPNZ-54VKBKS-LBND4AS-JNWVOW7-BTW2UMV-QHYM5TZ-GE3AK3E-PGSXPQE";
|
||||
hera.id = "TJHVUM6-RTB6V3D-JF4GIB2-TVDF2ST-5MTN6N2-ZDIWGF7-XZUCCFG-EQG5WA6";
|
||||
hephaistos.id = "M6QOG65-2VIL4IF-IP2IGHW-QAT7VSC-3V3244M-UQ7Y5A6-T2TJEAL-BP427QR";
|
||||
athene.id = "7EMUMTN-NQATI52-B67EUJP-DVB6OLE-KQSM5LJ-2HI3KX5-UJAKUTL-PAV6HQ3";
|
||||
};
|
||||
in
|
||||
{
|
||||
devices = pkgs.lib.getAttrs hosts devices;
|
||||
|
|
|
@ -74,9 +74,7 @@
|
|||
...
|
||||
}:
|
||||
{
|
||||
devShells.default = pkgs.mkShell {
|
||||
shellHook = config.pre-commit.installationScript;
|
||||
};
|
||||
devShells.default = pkgs.mkShell { shellHook = config.pre-commit.installationScript; };
|
||||
|
||||
pre-commit =
|
||||
let
|
||||
|
|
|
@ -68,7 +68,5 @@
|
|||
nixos-hardware.url = "nixos-hardware";
|
||||
};
|
||||
|
||||
outputs =
|
||||
inputs:
|
||||
inputs.flake-parts.lib.mkFlake { inherit inputs; } (import ./flake-module.nix);
|
||||
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (import ./flake-module.nix);
|
||||
}
|
||||
|
|
|
@ -76,9 +76,7 @@
|
|||
++ [
|
||||
(pkgs.writeShellScriptBin "unlock-keys" ''
|
||||
ssh-add ~/.ssh/id_ed25519_sk-nitro-1
|
||||
${
|
||||
lib.getBin pkgs.dbus
|
||||
}/bin/dbus-update-activation-environment --systemd SSH_AUTH_SOCK
|
||||
${lib.getBin pkgs.dbus}/bin/dbus-update-activation-environment --systemd SSH_AUTH_SOCK
|
||||
if ! rbw unlocked; then killall rbw-agent; fi
|
||||
rbw unlock
|
||||
'')
|
||||
|
|
|
@ -43,14 +43,12 @@ in
|
|||
};
|
||||
systemd.user.timers.mbsync.Timer.RandomizedDelaySec = "10m";
|
||||
|
||||
accounts.email.accounts =
|
||||
lib.recursiveUpdate (pkgs.privateValue { } "mail/accounts")
|
||||
{
|
||||
hera = {
|
||||
passwordCommand = "${pkgs.coreutils}/bin/cat /run/agenix/mail-password";
|
||||
imapnotify.onNotify = lib.getExe quick-mail-sync;
|
||||
};
|
||||
};
|
||||
accounts.email.accounts = lib.recursiveUpdate (pkgs.privateValue { } "mail/accounts") {
|
||||
hera = {
|
||||
passwordCommand = "${pkgs.coreutils}/bin/cat /run/agenix/mail-password";
|
||||
imapnotify.onNotify = lib.getExe quick-mail-sync;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services =
|
||||
let
|
||||
|
@ -75,9 +73,7 @@ in
|
|||
};
|
||||
};
|
||||
in
|
||||
lib.mapAttrs' mkWatchService (
|
||||
lib.filterAttrs hasImapHost config.accounts.email.accounts
|
||||
)
|
||||
lib.mapAttrs' mkWatchService (lib.filterAttrs hasImapHost config.accounts.email.accounts)
|
||||
// {
|
||||
mbsync.Service = {
|
||||
Environment = "PATH=${
|
||||
|
|
|
@ -29,9 +29,7 @@ in
|
|||
pkgs.gnugrep
|
||||
]
|
||||
}
|
||||
if [[ -z "$(${
|
||||
lib.getExe pkgs.taskwarrior
|
||||
} show taskd.credentials | grep maralorn)" ]]; then
|
||||
if [[ -z "$(${lib.getExe pkgs.taskwarrior} show taskd.credentials | grep maralorn)" ]]; then
|
||||
yes | /bin/sh /run/agenix/taskwarrior-creds-script
|
||||
fi
|
||||
'').outPath;
|
||||
|
|
|
@ -12,7 +12,5 @@
|
|||
pkgs.writeShellScriptBin "weechat"
|
||||
"ssh -t hera 'TMUX_TMPDIR=/run/user/1000 tmux -L weechat attach'";
|
||||
};
|
||||
xdg.configFile."Element/config.json".text = builtins.toJSON {
|
||||
showLabsSettings = true;
|
||||
};
|
||||
xdg.configFile."Element/config.json".text = builtins.toJSON { showLabsSettings = true; };
|
||||
}
|
||||
|
|
|
@ -35,9 +35,7 @@
|
|||
config.programs.rbw.package
|
||||
]
|
||||
}";
|
||||
ExecStart = "${
|
||||
lib.getExe config.programs.eww.package
|
||||
} daemon --no-daemonize --restart";
|
||||
ExecStart = "${lib.getExe config.programs.eww.package} daemon --no-daemonize --restart";
|
||||
ExecStartPost = [
|
||||
"${lib.getExe config.programs.eww.package} open-many bar bg"
|
||||
"${lib.getExe pkgs.set-timer} foo"
|
||||
|
|
|
@ -9,8 +9,7 @@ let
|
|||
term = cmd: fork "foot ${cmd}";
|
||||
edit_dir = dir: term (shell "cd ${dir}; hx ${dir}");
|
||||
shell = cmd: "sh -c '${cmd}'";
|
||||
with-mic-check =
|
||||
cmd: fork (shell "${config.home.sessionVariables.TERMINAL} mic-check; ${cmd}");
|
||||
with-mic-check = cmd: fork (shell "${config.home.sessionVariables.TERMINAL} mic-check; ${cmd}");
|
||||
hotkeys = [
|
||||
{
|
||||
Orga = [
|
||||
|
@ -71,12 +70,8 @@ let
|
|||
in
|
||||
[
|
||||
{ "Play/Pause" = "${pkgs.playerctl}/bin/playerctl play-pause"; }
|
||||
{
|
||||
"Toggle Output Mute" = "${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
}
|
||||
{
|
||||
"Toggle Input Mute" = "${pkgs.pulseaudio}/bin/pactl set-source-mute @DEFAULT_SOURCE@ toggle";
|
||||
}
|
||||
{ "Toggle Output Mute" = "${pkgs.pulseaudio}/bin/pactl set-sink-mute @DEFAULT_SINK@ toggle"; }
|
||||
{ "Toggle Input Mute" = "${pkgs.pulseaudio}/bin/pactl set-source-mute @DEFAULT_SOURCE@ toggle"; }
|
||||
{ "MPD lokal" = mpdclient "::"; }
|
||||
{ "Athene MPD" = mpdclient "athene"; }
|
||||
{ "Lautstärke" = fork "pavucontrol"; }
|
||||
|
@ -112,9 +107,7 @@ let
|
|||
"Steam Lanucher" = fork "steam";
|
||||
"The Witcher 3" = fork "xdg-open heroic://launch/gog/1495134320";
|
||||
"Baldurs Gate 3" = fork "steam steam://rungameid/1086940";
|
||||
"Guild Wars 2" =
|
||||
fork
|
||||
"xdg-open heroic://launch/sideload/9gC1jhFqE9cV2xNz43ciaE";
|
||||
"Guild Wars 2" = fork "xdg-open heroic://launch/sideload/9gC1jhFqE9cV2xNz43ciaE";
|
||||
"Minecraft" = fork "prismlauncher";
|
||||
"Factorio" = fork "factorio";
|
||||
};
|
||||
|
|
|
@ -7,9 +7,7 @@
|
|||
let
|
||||
inject_exec = lib.mapAttrs (
|
||||
lib.const (
|
||||
lib.recursiveUpdate {
|
||||
exec = [ "${mylib.getExe' pkgs.systemd "systemctl"} --user restart eww" ];
|
||||
}
|
||||
lib.recursiveUpdate { exec = [ "${mylib.getExe' pkgs.systemd "systemctl"} --user restart eww" ]; }
|
||||
)
|
||||
);
|
||||
in
|
||||
|
|
|
@ -20,9 +20,7 @@ in
|
|||
home.packages = [
|
||||
(pkgs.writeShellScriptBin "switch-mpd" ''
|
||||
mkdir -p ${config.xdg.configHome}/mpDris2
|
||||
${
|
||||
lib.getExe pkgs.sd
|
||||
} -p ${replace_string} "$1" ${mprisCfg.source} > $HOME/${mprisCfg.target}
|
||||
${lib.getExe pkgs.sd} -p ${replace_string} "$1" ${mprisCfg.source} > $HOME/${mprisCfg.target}
|
||||
${pkgs.systemd}/bin/systemctl --user restart mpdris2.service
|
||||
'')
|
||||
];
|
||||
|
|
|
@ -1,9 +1,7 @@
|
|||
{ pkgs, ... }:
|
||||
let
|
||||
script =
|
||||
(pkgs.recursiveLinkFarm "autosave.lua" {
|
||||
"share/mpv/scripts/autosave.lua" = ./autosave.lua;
|
||||
})
|
||||
(pkgs.recursiveLinkFarm "autosave.lua" { "share/mpv/scripts/autosave.lua" = ./autosave.lua; })
|
||||
// {
|
||||
scriptName = "autosave.lua";
|
||||
};
|
||||
|
|
|
@ -5,7 +5,6 @@
|
|||
Timer.OnCalendar = "23:00";
|
||||
Install.WantedBy = [ "timers.target" ];
|
||||
};
|
||||
services.night-warn.Service.ExecStart = ''
|
||||
${lib.getExe pkgs.set-timer} Wecker "tomorrow 8:45"'';
|
||||
services.night-warn.Service.ExecStart = ''${lib.getExe pkgs.set-timer} Wecker "tomorrow 8:45"'';
|
||||
};
|
||||
}
|
||||
|
|
|
@ -13,9 +13,7 @@ let
|
|||
|
||||
link="''${1:-`${lib.getBin pkgs.wl-clipboard}/bin/wl-paste`}"
|
||||
|
||||
filename="`${lib.getExe pkgs.yt-dlp} -j $link | ${
|
||||
lib.getExe pkgs.jq
|
||||
} -r .filename`"
|
||||
filename="`${lib.getExe pkgs.yt-dlp} -j $link | ${lib.getExe pkgs.jq} -r .filename`"
|
||||
if [[ ! -f "$filename" ]]; then
|
||||
echo "Prefetching file …"
|
||||
# --user to use the user daemon
|
||||
|
@ -24,9 +22,7 @@ let
|
|||
${lib.getBin pkgs.systemd}/bin/systemd-run --user --no-block -G \
|
||||
${lib.getExe pkgs.foot} -D "${video_dir}" \
|
||||
/bin/sh -c \
|
||||
"${
|
||||
lib.getExe pkgs.yt-dlp
|
||||
} --embed-subs --embed-metadata --embed-chapters \"$1\""
|
||||
"${lib.getExe pkgs.yt-dlp} --embed-subs --embed-metadata --embed-chapters \"$1\""
|
||||
else
|
||||
echo "File already fetched. Playing …"
|
||||
${lib.getExe config.programs.mpv.finalPackage} "$filename"
|
||||
|
@ -58,10 +54,7 @@ let
|
|||
'';
|
||||
in
|
||||
pkgs.writeShellScriptBin name
|
||||
''
|
||||
${
|
||||
lib.getExe pkgs.newsboat
|
||||
} -r -C ${configFile} -c ~/.local/share/newsboat/${name}-cache.db "$@"''
|
||||
''${lib.getExe pkgs.newsboat} -r -C ${configFile} -c ~/.local/share/newsboat/${name}-cache.db "$@"''
|
||||
)
|
||||
{
|
||||
news = {
|
||||
|
|
|
@ -29,16 +29,12 @@ let
|
|||
unsorted = "${maildir}/${unsortedSuffix}";
|
||||
archive = "${maildir}/${archiveSuffix}";
|
||||
filter = rec {
|
||||
mailToFolder =
|
||||
name: toFolder (lib.concatStringsSep "." (lib.splitString "@" name));
|
||||
toFolder =
|
||||
name: lib.concatStringsSep "/" (lib.reverseList (lib.splitString "." name));
|
||||
mailToFolder = name: toFolder (lib.concatStringsSep "." (lib.splitString "@" name));
|
||||
toFolder = name: lib.concatStringsSep "/" (lib.reverseList (lib.splitString "." name));
|
||||
simple = filter: target: { inherit filter target; };
|
||||
notifications =
|
||||
notify: simple "from:${notify}" "notifications/${mailToFolder notify}";
|
||||
notifications = notify: simple "from:${notify}" "notifications/${mailToFolder notify}";
|
||||
stupidList = list: simple "to:${list}" "list/${mailToFolder list}";
|
||||
simpleSortList =
|
||||
listName: simple "List:${listName}" "list/${toFolder listName}";
|
||||
simpleSortList = listName: simple "List:${listName}" "list/${toFolder listName}";
|
||||
};
|
||||
myFilters =
|
||||
builtins.map filter.simpleSortList lists.sortLists
|
||||
|
@ -108,9 +104,7 @@ let
|
|||
|
||||
main = do
|
||||
setEnv "MBLAZE_PAGER" "cat"
|
||||
setEnv "NOTMUCH_CONFIG" "${
|
||||
config.home.sessionVariables.NOTMUCH_CONFIG or ""
|
||||
}"
|
||||
setEnv "NOTMUCH_CONFIG" "${config.home.sessionVariables.NOTMUCH_CONFIG or ""}"
|
||||
reScan
|
||||
(listIDs,tos) <- concurrently (mhdr "-h" "List-ID" "-d" "${unsorted}" |> capture) (mhdr "-h" "To" "-d" "${unsorted}" "-A" |> capture)
|
||||
let listFilters = mapMaybe filtersFromListIDs . sortNub . mapMaybe (parseMaybe listId) . lines . decodeUtf8 $ listIDs
|
||||
|
|
|
@ -19,9 +19,7 @@ let
|
|||
}
|
||||
''
|
||||
main = do
|
||||
setEnv "NOTMUCH_CONFIG" "${
|
||||
config.home.sessionVariables.NOTMUCH_CONFIG or ""
|
||||
}"
|
||||
setEnv "NOTMUCH_CONFIG" "${config.home.sessionVariables.NOTMUCH_CONFIG or ""}"
|
||||
mbsync "hera:Move/readlater,Archiv/unsortiert"
|
||||
notmuch "new" "--quiet"
|
||||
mail2rss "${config.accounts.email.maildirBasePath}" "hera/Move/readlater" &> Truncate "/var/www/rss/mails.xml"
|
||||
|
|
|
@ -12,9 +12,7 @@ let
|
|||
plugins = builtins.attrValues (
|
||||
availablePlugins
|
||||
// {
|
||||
python = availablePlugins.python.withPackages (
|
||||
_: [ pkgs.weechatScripts.weechat-matrix ]
|
||||
);
|
||||
python = availablePlugins.python.withPackages (_: [ pkgs.weechatScripts.weechat-matrix ]);
|
||||
}
|
||||
);
|
||||
scripts = [ pkgs.weechatScripts.weechat-matrix ];
|
||||
|
@ -110,9 +108,7 @@ in
|
|||
log2rss = {
|
||||
Unit.Description = "weechat2rss";
|
||||
Service = {
|
||||
ExecStart = "${
|
||||
lib.getBin pkgs.rssfeeds
|
||||
}/bin/weechat2rss /var/www/rss/chats.xml";
|
||||
ExecStart = "${lib.getBin pkgs.rssfeeds}/bin/weechat2rss /var/www/rss/chats.xml";
|
||||
Type = "oneshot";
|
||||
};
|
||||
};
|
||||
|
|
|
@ -4,8 +4,6 @@
|
|||
".volatile".source =
|
||||
config.lib.file.mkOutOfStoreSymlink
|
||||
"/disk/volatile${config.home.homeDirectory}";
|
||||
".persist".source =
|
||||
config.lib.file.mkOutOfStoreSymlink
|
||||
"/disk/persist${config.home.homeDirectory}";
|
||||
".persist".source = config.lib.file.mkOutOfStoreSymlink "/disk/persist${config.home.homeDirectory}";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,10 +29,7 @@ in
|
|||
"media/audio/playlists" = {
|
||||
source = pkgs.recursiveLinkFarm "mpd-playlists" (
|
||||
lib.mapAttrs'
|
||||
(
|
||||
name: content:
|
||||
lib.nameValuePair "${name}.m3u" (builtins.toFile "${name}.m3u" content)
|
||||
)
|
||||
(name: content: lib.nameValuePair "${name}.m3u" (builtins.toFile "${name}.m3u" content))
|
||||
{
|
||||
"athene" = "http://athene.vpn.m-0.eu:8666";
|
||||
"radio-swiss-classic" = "https://stream.srg-ssr.ch/m/rsc_de/aacp_96";
|
||||
|
|
|
@ -1,4 +1 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = builtins.attrValues { inherit (pkgs) heroic gogdl; };
|
||||
}
|
||||
{ pkgs, ... }: { home.packages = builtins.attrValues { inherit (pkgs) heroic gogdl; }; }
|
||||
|
|
|
@ -1,4 +1 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = builtins.attrValues { inherit (pkgs) gamemode mangohud; };
|
||||
}
|
||||
{ pkgs, ... }: { home.packages = builtins.attrValues { inherit (pkgs) gamemode mangohud; }; }
|
||||
|
|
|
@ -9,9 +9,7 @@ flake-inputs:
|
|||
let
|
||||
inherit (import ../../../common/common.nix { inherit pkgs; }) syncthing;
|
||||
backupJobs = pkgs.privateValue { } "borgbackup";
|
||||
backupJobNames = map (name: "borgbackup-job-${name}") (
|
||||
lib.attrNames backupJobs
|
||||
);
|
||||
backupJobNames = map (name: "borgbackup-job-${name}") (lib.attrNames backupJobs);
|
||||
in
|
||||
{
|
||||
imports =
|
||||
|
@ -74,8 +72,7 @@ in
|
|||
script =
|
||||
lib.concatMapStringsSep "\n"
|
||||
(
|
||||
name:
|
||||
"${config.services.postgresql.package}/bin/pg_dump ${name} > /var/lib/db-backup-dumps/${name}"
|
||||
name: "${config.services.postgresql.package}/bin/pg_dump ${name} > /var/lib/db-backup-dumps/${name}"
|
||||
)
|
||||
config.services.postgresql.ensureDatabases;
|
||||
serviceConfig = {
|
||||
|
|
|
@ -85,14 +85,11 @@ in
|
|||
virtualMapType = "regexp";
|
||||
config = {
|
||||
# Allow TLSv1 because we need to be able to receive mail from legacy servers.
|
||||
smtpd_tls_protocols =
|
||||
lib.mkForce
|
||||
"TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, !SSLv2, !SSLv3";
|
||||
smtpd_tls_protocols = lib.mkForce "TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, !SSLv2, !SSLv3";
|
||||
virtual_mailbox_domains = lib.mkForce (
|
||||
builtins.toFile "vhosts" (
|
||||
lib.concatStringsSep "\n" (
|
||||
builtins.filter (x: !builtins.elem x nonMailboxDomains)
|
||||
config.mailserver.domains
|
||||
builtins.filter (x: !builtins.elem x nonMailboxDomains) config.mailserver.domains
|
||||
)
|
||||
)
|
||||
);
|
||||
|
|
|
@ -15,8 +15,7 @@
|
|||
users.maralorn = {
|
||||
imports = [
|
||||
pkgs.flake-inputs.nix-index-database.hmModules.nix-index
|
||||
(import ./../../../home-manager/machines.nix mylib)
|
||||
.${config.networking.hostName}
|
||||
(import ./../../../home-manager/machines.nix mylib).${config.networking.hostName}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{ lib, config, ... }:
|
||||
{
|
||||
programs.ssh.knownHosts =
|
||||
lib.mapAttrs
|
||||
(_: aliases: { extraHostNames = map (alias: "${alias}.maralorn.de") aliases; })
|
||||
lib.mapAttrs (_: aliases: { extraHostNames = map (alias: "${alias}.maralorn.de") aliases; })
|
||||
config.m-0.hosts.aliases;
|
||||
}
|
||||
|
|
|
@ -44,17 +44,14 @@
|
|||
# have the job run this shell script
|
||||
script =
|
||||
let
|
||||
options = ''
|
||||
--accept-routes --advertise-routes "${config.m-0.tailscale-routes}"'';
|
||||
options = ''--accept-routes --advertise-routes "${config.m-0.tailscale-routes}"'';
|
||||
in
|
||||
''
|
||||
# wait for tailscaled to settle
|
||||
sleep 2
|
||||
|
||||
# check if we are already authenticated to tailscale
|
||||
status="$(${lib.getExe pkgs.tailscale} status -json | ${
|
||||
lib.getExe pkgs.jq
|
||||
} -r .BackendState)"
|
||||
status="$(${lib.getExe pkgs.tailscale} status -json | ${lib.getExe pkgs.jq} -r .BackendState)"
|
||||
if [ $status = "Running" ]; then # if so, then do nothing
|
||||
${lib.getExe pkgs.tailscale} set ${options}
|
||||
else
|
||||
|
|
|
@ -10,9 +10,7 @@ in
|
|||
{
|
||||
environment.persistence.snapshoted.directories = [ "/var/www/5etools" ];
|
||||
|
||||
services.nginx.virtualHosts.${
|
||||
virtualHosts."5e"
|
||||
}.locations."/".root = "/var/www/5etools";
|
||||
services.nginx.virtualHosts.${virtualHosts."5e"}.locations."/".root = "/var/www/5etools";
|
||||
|
||||
systemd.services.update-5etools = {
|
||||
script = ''
|
||||
|
@ -22,9 +20,7 @@ in
|
|||
if [[ -d ".git" ]]; then
|
||||
${lib.getExe pkgs.git} pull -r
|
||||
else
|
||||
${
|
||||
lib.getExe pkgs.git
|
||||
} clone https://github.com/5etools-mirror-1/5etools-mirror-1.github.io.git .
|
||||
${lib.getExe pkgs.git} clone https://github.com/5etools-mirror-1/5etools-mirror-1.github.io.git .
|
||||
fi
|
||||
'';
|
||||
startAt = "daily";
|
||||
|
|
|
@ -68,9 +68,7 @@ in
|
|||
url = "localhost:5432";
|
||||
user = "grafana";
|
||||
uid = "accounting";
|
||||
secureJsonData.password = "$__file{${
|
||||
config.age.secrets."grafana-postgres-pw".path
|
||||
}}";
|
||||
secureJsonData.password = "$__file{${config.age.secrets."grafana-postgres-pw".path}}";
|
||||
jsonData = {
|
||||
database = "accounting";
|
||||
sslmode = "disable";
|
||||
|
|
|
@ -1,4 +1 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
users.users.maralorn.passwordFile = config.age.secrets.pam-short-password.path;
|
||||
}
|
||||
{ config, ... }: { users.users.maralorn.passwordFile = config.age.secrets.pam-short-password.path; }
|
||||
|
|
|
@ -8,16 +8,14 @@
|
|||
dataDir = "/home/maralorn/media";
|
||||
openDefaultPorts = true;
|
||||
devices = lib.filterAttrs (name: _: name != config.networking.hostName) (
|
||||
lib.mapAttrs
|
||||
(name: conf: conf // { addresses = [ "tcp6://${name}.vpn.m-0.eu" ]; })
|
||||
{
|
||||
apollo.id = "BOTTTGS-QQUHWAK-IFBT3T2-HGHHUZ7-QHRZXC7-JC42VT7-67ZOJBE-WHDWEQX";
|
||||
zeus.id = "5BUZIS5-ESTYAJO-IQQD7EA-O3VGONJ-E74OHUJ-ZSLF4JK-6HS3UHG-4CQ5OAO";
|
||||
pegasus.id = "BISYPNZ-54VKBKS-LBND4AS-JNWVOW7-BTW2UMV-QHYM5TZ-GE3AK3E-PGSXPQE";
|
||||
hera.id = "TJHVUM6-RTB6V3D-JF4GIB2-TVDF2ST-5MTN6N2-ZDIWGF7-XZUCCFG-EQG5WA6";
|
||||
hephaistos.id = "M6QOG65-2VIL4IF-IP2IGHW-QAT7VSC-3V3244M-UQ7Y5A6-T2TJEAL-BP427QR";
|
||||
athene.id = "7EMUMTN-NQATI52-B67EUJP-DVB6OLE-KQSM5LJ-2HI3KX5-UJAKUTL-PAV6HQ3";
|
||||
}
|
||||
lib.mapAttrs (name: conf: conf // { addresses = [ "tcp6://${name}.vpn.m-0.eu" ]; }) {
|
||||
apollo.id = "BOTTTGS-QQUHWAK-IFBT3T2-HGHHUZ7-QHRZXC7-JC42VT7-67ZOJBE-WHDWEQX";
|
||||
zeus.id = "5BUZIS5-ESTYAJO-IQQD7EA-O3VGONJ-E74OHUJ-ZSLF4JK-6HS3UHG-4CQ5OAO";
|
||||
pegasus.id = "BISYPNZ-54VKBKS-LBND4AS-JNWVOW7-BTW2UMV-QHYM5TZ-GE3AK3E-PGSXPQE";
|
||||
hera.id = "TJHVUM6-RTB6V3D-JF4GIB2-TVDF2ST-5MTN6N2-ZDIWGF7-XZUCCFG-EQG5WA6";
|
||||
hephaistos.id = "M6QOG65-2VIL4IF-IP2IGHW-QAT7VSC-3V3244M-UQ7Y5A6-T2TJEAL-BP427QR";
|
||||
athene.id = "7EMUMTN-NQATI52-B67EUJP-DVB6OLE-KQSM5LJ-2HI3KX5-UJAKUTL-PAV6HQ3";
|
||||
}
|
||||
);
|
||||
folders =
|
||||
lib.genAttrs
|
||||
|
|
|
@ -63,16 +63,12 @@ in
|
|||
);
|
||||
};
|
||||
|
||||
m-0.virtualHosts = lib.genAttrs (hosts.aliases.${hostName} or [ ]) (
|
||||
name: "${name}.maralorn.de"
|
||||
);
|
||||
m-0.virtualHosts = lib.genAttrs (hosts.aliases.${hostName} or [ ]) (name: "${name}.maralorn.de");
|
||||
|
||||
nix = {
|
||||
# Extra Option which is on by default: allow-import-from-derivation = true
|
||||
settings = {
|
||||
trusted-public-keys = [
|
||||
"cache.maralorn.de:nul5zddJUyqgWvtcailq5WMdnqWXMmSY/JOxumIvTdU="
|
||||
];
|
||||
trusted-public-keys = [ "cache.maralorn.de:nul5zddJUyqgWvtcailq5WMdnqWXMmSY/JOxumIvTdU=" ];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
|
@ -233,14 +229,11 @@ in
|
|||
value = {
|
||||
forceSSL = true;
|
||||
enableACME = true;
|
||||
extraConfig =
|
||||
lib.mkIf (!(builtins.elem name (hosts.publicAliases.${hostName} or [ ])))
|
||||
''
|
||||
satisfy any;
|
||||
${lib.concatMapStringsSep "\n" (ip_range: "allow ${ip_range};")
|
||||
config.m-0.headscaleIPs}
|
||||
deny all;
|
||||
'';
|
||||
extraConfig = lib.mkIf (!(builtins.elem name (hosts.publicAliases.${hostName} or [ ]))) ''
|
||||
satisfy any;
|
||||
${lib.concatMapStringsSep "\n" (ip_range: "allow ${ip_range};") config.m-0.headscaleIPs}
|
||||
deny all;
|
||||
'';
|
||||
};
|
||||
})
|
||||
config.m-0.virtualHosts;
|
||||
|
|
|
@ -87,10 +87,7 @@
|
|||
font_sources = map (v: v.src) (lib.filter (v: v ? src) config.fonts.fonts);
|
||||
in
|
||||
builtins.listToAttrs (
|
||||
lib.imap0
|
||||
(
|
||||
n: source: lib.nameValuePair "src-cache/fonts/${toString n}" { inherit source; }
|
||||
)
|
||||
lib.imap0 (n: source: lib.nameValuePair "src-cache/fonts/${toString n}" { inherit source; })
|
||||
font_sources
|
||||
);
|
||||
}
|
||||
|
|
|
@ -14,9 +14,7 @@ let
|
|||
minifyStaticFiles = true;
|
||||
updateChannel = "release";
|
||||
};
|
||||
declarativeConfigFile = builtins.toFile "foundry-options.json" (
|
||||
builtins.toJSON config
|
||||
);
|
||||
declarativeConfigFile = builtins.toFile "foundry-options.json" (builtins.toJSON config);
|
||||
in
|
||||
{
|
||||
config = {
|
||||
|
@ -28,9 +26,7 @@ in
|
|||
if [[ -f "${configFile}" ]]; then
|
||||
tempfile=$(mktemp)
|
||||
cp "${configFile}" "$tempfile"
|
||||
${
|
||||
lib.getExe pkgs.jq
|
||||
} ".[0] * .[1]" -s "$tempfile" "${declarativeConfigFile}" > "${configFile}"
|
||||
${lib.getExe pkgs.jq} ".[0] * .[1]" -s "$tempfile" "${declarativeConfigFile}" > "${configFile}"
|
||||
else
|
||||
cp "${declarativeConfigFile}" "${configFile}"
|
||||
fi
|
||||
|
@ -45,9 +41,7 @@ in
|
|||
Restart = "always";
|
||||
Environment = "HOME=${stateDir}";
|
||||
ExecStart = ''
|
||||
${
|
||||
lib.getExe pkgs.nodejs
|
||||
} ${stateDir}/app/resources/app/main.js --dataPath="${dataDir}"'';
|
||||
${lib.getExe pkgs.nodejs} ${stateDir}/app/resources/app/main.js --dataPath="${dataDir}"'';
|
||||
};
|
||||
};
|
||||
services = {
|
||||
|
@ -69,9 +63,7 @@ in
|
|||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
if ($query_string ~ "pw=([A-Za-z]*)") {
|
||||
add_header Set-Cookie "password=$1; path=/; Max-Age=${
|
||||
toString (365 * 24 * 60 * 60)
|
||||
}; Secure";
|
||||
add_header Set-Cookie "password=$1; path=/; Max-Age=${toString (365 * 24 * 60 * 60)}; Secure";
|
||||
return 303 /;
|
||||
}
|
||||
if ($http_cookie !~ "password=${pkgs.privateValue "" "foundry-pw"}") {
|
||||
|
|
|
@ -401,11 +401,7 @@ in
|
|||
2500
|
||||
3000
|
||||
];
|
||||
action = [
|
||||
(actions.notify
|
||||
"{{ trigger.to_state.name }} ist {{ trigger.to_state.state }} ppm."
|
||||
)
|
||||
];
|
||||
action = [ (actions.notify "{{ trigger.to_state.name }} ist {{ trigger.to_state.state }} ppm.") ];
|
||||
}
|
||||
{
|
||||
alias = "Warnung bei niedrigem Akkustand";
|
||||
|
@ -428,11 +424,7 @@ in
|
|||
1
|
||||
0
|
||||
];
|
||||
action = [
|
||||
(actions.notify
|
||||
"{{ trigger.to_state.name }} ist {{ trigger.to_state.state }}%."
|
||||
)
|
||||
];
|
||||
action = [ (actions.notify "{{ trigger.to_state.name }} ist {{ trigger.to_state.state }}%.") ];
|
||||
}
|
||||
{
|
||||
alias = "Abend";
|
||||
|
@ -482,9 +474,7 @@ in
|
|||
to = "unavailable";
|
||||
for = "01:00:00";
|
||||
};
|
||||
action = [
|
||||
(actions.notify "{{ trigger.to_state.name }} ist seit 1h unerreichbar.")
|
||||
];
|
||||
action = [ (actions.notify "{{ trigger.to_state.name }} ist seit 1h unerreichbar.") ];
|
||||
})
|
||||
[
|
||||
"switch.luftentfeuchter"
|
||||
|
@ -514,9 +504,7 @@ in
|
|||
below = 16;
|
||||
};
|
||||
action = [
|
||||
(actions.notify
|
||||
"{{ trigger.to_state.name }} ist seit mehr als ${minutes} Minuten offen."
|
||||
)
|
||||
(actions.notify "{{ trigger.to_state.name }} ist seit mehr als ${minutes} Minuten offen.")
|
||||
];
|
||||
})
|
||||
(
|
||||
|
|
|
@ -43,8 +43,7 @@ rec {
|
|||
modeSelectEntity = mode: "input_select.${modeSelectName mode}";
|
||||
modeSelectName = mode: "mode_${mode.name}";
|
||||
modeBinarySensorName = mode: option: "${modeSelectName mode}_is_${option}";
|
||||
modeBinarySensorEntity =
|
||||
mode: option: "binary_sensor.${modeBinarySensorName mode option}";
|
||||
modeBinarySensorEntity = mode: option: "binary_sensor.${modeBinarySensorName mode option}";
|
||||
};
|
||||
triggers = rec {
|
||||
stateTrigger = entity_id: {
|
||||
|
@ -96,11 +95,8 @@ rec {
|
|||
};
|
||||
};
|
||||
templates = rec {
|
||||
binarySensor = state: attrs: {
|
||||
binary_sensor = [ ({ inherit state; } // attrs) ];
|
||||
};
|
||||
binarySensorFromCondition =
|
||||
condition: binarySensor (jinja.if' condition "1" "0");
|
||||
binarySensor = state: attrs: { binary_sensor = [ ({ inherit state; } // attrs) ]; };
|
||||
binarySensorFromCondition = condition: binarySensor (jinja.if' condition "1" "0");
|
||||
binarySensorForMode =
|
||||
mode: option:
|
||||
binarySensorFromCondition (jinja.isState (util.modeSelectEntity mode) option) {
|
||||
|
|
|
@ -9,9 +9,7 @@ in
|
|||
systemd.services.mailman.postStart = lib.concatStringsSep "\n" (
|
||||
map
|
||||
(x: ''
|
||||
${
|
||||
(pkgs.mailmanPackages.buildEnvs { }).mailmanEnv
|
||||
}/bin/mailman syncmembers -W -G - "${x}" << EOF
|
||||
${(pkgs.mailmanPackages.buildEnvs { }).mailmanEnv}/bin/mailman syncmembers -W -G - "${x}" << EOF
|
||||
${lib.concatStringsSep "\n" lists."${x}"}
|
||||
EOF
|
||||
'')
|
||||
|
|
|
@ -9,9 +9,7 @@ let
|
|||
hostName = "matrix.${server_name}";
|
||||
in
|
||||
{
|
||||
environment.systemPackages = [
|
||||
pkgs.matrix-synapse-tools.rust-synapse-compress-state
|
||||
];
|
||||
environment.systemPackages = [ pkgs.matrix-synapse-tools.rust-synapse-compress-state ];
|
||||
systemd.services = {
|
||||
# use jemalloc to improve the memory situation with synapse
|
||||
matrix-synapse.environment = {
|
||||
|
|
|
@ -45,18 +45,12 @@ in
|
|||
${
|
||||
lib.getExe pkgs.mastodon_digest
|
||||
} -o /var/www/rss/mastodon/$now-read-all-list -n 24 -t all --theme no-boosts -f list:3811
|
||||
${
|
||||
lib.getExe pkgs.mastodon_digest
|
||||
} -o /var/www/rss/mastodon/$now-tags -n 24 -t all -f list:4160
|
||||
${
|
||||
lib.getBin pkgs.rssfeeds
|
||||
}/bin/mastodon2rss /var/www/rss/mastodon.xml /var/www/rss/mastodon
|
||||
${lib.getExe pkgs.mastodon_digest} -o /var/www/rss/mastodon/$now-tags -n 24 -t all -f list:4160
|
||||
${lib.getBin pkgs.rssfeeds}/bin/mastodon2rss /var/www/rss/mastodon.xml /var/www/rss/mastodon
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
LoadCredential = [
|
||||
"mastodon-auth-env:${config.age.secrets.mastodon-auth-env.path}"
|
||||
];
|
||||
LoadCredential = [ "mastodon-auth-env:${config.age.secrets.mastodon-auth-env.path}" ];
|
||||
};
|
||||
};
|
||||
refresh-miniflux = {
|
||||
|
|
|
@ -2,9 +2,7 @@
|
|||
{
|
||||
services = {
|
||||
prometheus = {
|
||||
alertmanagers = [
|
||||
{ static_configs = [ { targets = [ "localhost:9093" ]; } ]; }
|
||||
];
|
||||
alertmanagers = [ { static_configs = [ { targets = [ "localhost:9093" ]; } ]; } ];
|
||||
alertmanager = {
|
||||
enable = true;
|
||||
listenAddress = "0.0.0.0";
|
||||
|
|
|
@ -2,33 +2,25 @@
|
|||
let
|
||||
heading = name: link: ''<h2><a href=\"${link}\">${name}</a></h2>'';
|
||||
badge = src: link: ''<a href=\"${link}\">\n <img src=\"${src}\">\n</a>'';
|
||||
job =
|
||||
name:
|
||||
badge "https://ci.maralorn.de/badge/${name}.svg"
|
||||
"https://ci.maralorn.de/jobs/${name}";
|
||||
job = name: badge "https://ci.maralorn.de/badge/${name}.svg" "https://ci.maralorn.de/jobs/${name}";
|
||||
badges = lib.concatStringsSep "\\n" [
|
||||
(heading "ci.maralorn.de" "https://ci.maralorn.de")
|
||||
(job "test-config")
|
||||
(job "blog")
|
||||
|
||||
(heading "haskell-taskwarrior"
|
||||
"https://hackage.haskell.org/package/taskwarrior"
|
||||
)
|
||||
(badge
|
||||
"https://github.com/maralorn/haskell-taskwarrior/actions/workflows/haskell.yml/badge.svg"
|
||||
(heading "haskell-taskwarrior" "https://hackage.haskell.org/package/taskwarrior")
|
||||
(badge "https://github.com/maralorn/haskell-taskwarrior/actions/workflows/haskell.yml/badge.svg"
|
||||
"https://github.com/maralorn/haskell-taskwarrior/actions"
|
||||
)
|
||||
(badge "https://img.shields.io/hackage-deps/v/taskwarrior.svg"
|
||||
"http://packdeps.haskellers.com/reverse/taskwarrior"
|
||||
)
|
||||
(badge
|
||||
"https://repology.org/badge/vertical-allrepos/haskell:taskwarrior.svg?columns=3&header="
|
||||
(badge "https://repology.org/badge/vertical-allrepos/haskell:taskwarrior.svg?columns=3&header="
|
||||
"https://repology.org/project/haskell:taskwarrior/versions"
|
||||
)
|
||||
|
||||
(heading "nix-output-monitor" "https://github.com/maralorn/nix-output-monitor")
|
||||
(badge
|
||||
"https://repology.org/badge/vertical-allrepos/nix-output-monitor.svg?columns=3&header="
|
||||
(badge "https://repology.org/badge/vertical-allrepos/nix-output-monitor.svg?columns=3&header="
|
||||
"https://repology.org/project/nix-output-monitor/versions"
|
||||
)
|
||||
];
|
||||
|
|
|
@ -2,12 +2,8 @@ _final: prev: {
|
|||
element-web = prev.element-web.overrideAttrs (
|
||||
_: {
|
||||
postConfigure = ''
|
||||
patch node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx ${
|
||||
./RoomList.tsx.patch
|
||||
}
|
||||
cp ${
|
||||
./orville_communicator.opus
|
||||
} node_modules/matrix-react-sdk/res/media/message.ogg
|
||||
patch node_modules/matrix-react-sdk/src/components/views/rooms/RoomList.tsx ${./RoomList.tsx.patch}
|
||||
cp ${./orville_communicator.opus} node_modules/matrix-react-sdk/res/media/message.ogg
|
||||
'';
|
||||
preInstall = ''
|
||||
find . -name 'bundle.css'
|
||||
|
|
|
@ -12,9 +12,7 @@ let
|
|||
}
|
||||
]
|
||||
else
|
||||
lib.concatLists (
|
||||
lib.mapAttrsToList (dirName: linkToPath (path ++ [ dirName ])) fileOrDir
|
||||
)
|
||||
lib.concatLists (lib.mapAttrsToList (dirName: linkToPath (path ++ [ dirName ])) fileOrDir)
|
||||
);
|
||||
in
|
||||
{
|
||||
|
|
|
@ -11,19 +11,13 @@ let
|
|||
packages = p: builtins.attrValues (self.lib.selectHaskellPackages p);
|
||||
extraDependencies = p: {
|
||||
libraryHaskellDepends = builtins.attrValues (
|
||||
myPkgs.makeHaskellScriptPackages p
|
||||
// selectHaskellPackages p
|
||||
// {
|
||||
inherit (p) ghc-debug-client;
|
||||
}
|
||||
myPkgs.makeHaskellScriptPackages p // selectHaskellPackages p // { inherit (p) ghc-debug-client; }
|
||||
);
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
myHaskellScriptPackages =
|
||||
myPkgs.makeHaskellScriptPackages
|
||||
final.haskellPackages;
|
||||
myHaskellScriptPackages = myPkgs.makeHaskellScriptPackages final.haskellPackages;
|
||||
ghcWithPackages = builtins.head shell.nativeBuildInputs;
|
||||
}
|
||||
// selectHaskellPackages hpkgs
|
||||
|
|
|
@ -1,3 +1 @@
|
|||
_final: prev: {
|
||||
nerdfonts = prev.nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; };
|
||||
}
|
||||
_final: prev: { nerdfonts = prev.nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }; }
|
||||
|
|
|
@ -23,9 +23,7 @@ let
|
|||
if [[ "$2" == "" ]]; then
|
||||
new_timers=`${lib.getExe pkgs.jq} "map(select(.name != \"$1\"))" ~/.timers`
|
||||
else
|
||||
new_timers=`${
|
||||
lib.getExe pkgs.jq
|
||||
} "map(select(.name != \"$1\")) + [{name: \"$1\", at:$(${
|
||||
new_timers=`${lib.getExe pkgs.jq} "map(select(.name != \"$1\")) + [{name: \"$1\", at:$(${
|
||||
lib.getBin pkgs.coreutils
|
||||
}/bin/date +%s -d "$2")}]" ~/.timers`
|
||||
fi
|
||||
|
|
|
@ -29,13 +29,9 @@ in
|
|||
in
|
||||
''
|
||||
cp $contentPath ${filename}.hs
|
||||
${
|
||||
lib.concatStringsSep " " (
|
||||
lib.mapAttrsToList (key: val: ''${key}="${val}"'') ghcEnv
|
||||
)
|
||||
} ${ghc.withPackages (_: libraries)}/bin/ghc ${
|
||||
lib.escapeShellArgs ghcArgs
|
||||
} ${filename}.hs
|
||||
${lib.concatStringsSep " " (lib.mapAttrsToList (key: val: ''${key}="${val}"'') ghcEnv)} ${
|
||||
ghc.withPackages (_: libraries)
|
||||
}/bin/ghc ${lib.escapeShellArgs ghcArgs} ${filename}.hs
|
||||
mv ${filename} $out
|
||||
${pkgs.binutils-unwrapped}/bin/strip --strip-unneeded "$out"
|
||||
'';
|
||||
|
|
|
@ -22,11 +22,11 @@ executable builders-configurator
|
|||
import: warnings
|
||||
main-is: Main.hs
|
||||
default-extensions:
|
||||
NoImplicitPrelude
|
||||
BlockArguments
|
||||
DataKinds
|
||||
ExtendedDefaultRules
|
||||
LambdaCase
|
||||
NoImplicitPrelude
|
||||
OverloadedRecordDot
|
||||
OverloadedStrings
|
||||
QuasiQuotes
|
||||
|
|
|
@ -17,9 +17,7 @@ let
|
|||
}:
|
||||
hpkgs:
|
||||
let
|
||||
cleanSource = lib.sourceFilesBySuffices source (
|
||||
includePatterns ++ extraPatterns
|
||||
);
|
||||
cleanSource = lib.sourceFilesBySuffices source (includePatterns ++ extraPatterns);
|
||||
in
|
||||
lib.pipe { } [
|
||||
(hpkgs.callPackage source)
|
||||
|
@ -41,17 +39,11 @@ let
|
|||
daemons = final.callHackage "daemons" "0.3.0" { };
|
||||
};
|
||||
selectHaskellPackages =
|
||||
attrs:
|
||||
lib.mapAttrs (name: _: attrs.${name}) myHaskellPackages
|
||||
// {
|
||||
inherit (attrs) nixfmt;
|
||||
};
|
||||
attrs: lib.mapAttrs (name: _: attrs.${name}) myHaskellPackages // { inherit (attrs) nixfmt; };
|
||||
myHaskellPackages = {
|
||||
wizards-dialog = cleanCabalPackage ./wizards-dialog { };
|
||||
rssfeeds = cleanCabalPackage ./rssfeeds { };
|
||||
kassandra = cleanCabalPackage ./kassandra/kassandra {
|
||||
overrides = _: { doHaddock = false; };
|
||||
};
|
||||
kassandra = cleanCabalPackage ./kassandra/kassandra { overrides = _: { doHaddock = false; }; };
|
||||
kassandra-standalone = cleanCabalPackage ./kassandra/standalone { };
|
||||
nixpkgs-bot = cleanCabalPackage ./nixpkgs-bot { };
|
||||
t = cleanCabalPackage ./t { };
|
||||
|
@ -74,9 +66,7 @@ let
|
|||
};
|
||||
};
|
||||
};
|
||||
hpkgs = unstable-pkgs.haskellPackages.override {
|
||||
overrides = haskellPackagesOverlay;
|
||||
};
|
||||
hpkgs = unstable-pkgs.haskellPackages.override { overrides = haskellPackagesOverlay; };
|
||||
packages = selectHaskellPackages hpkgs;
|
||||
in
|
||||
{
|
||||
|
|
|
@ -15,7 +15,6 @@ extra-doc-files: CHANGELOG.md
|
|||
common common-config
|
||||
ghc-options: -Wall
|
||||
default-extensions:
|
||||
NoImplicitPrelude
|
||||
BlockArguments
|
||||
DataKinds
|
||||
DeriveAnyClass
|
||||
|
@ -30,6 +29,7 @@ common common-config
|
|||
LambdaCase
|
||||
MultiParamTypeClasses
|
||||
NamedFieldPuns
|
||||
NoImplicitPrelude
|
||||
OverloadedStrings
|
||||
QuasiQuotes
|
||||
ScopedTypeVariables
|
||||
|
|
|
@ -12,8 +12,6 @@ build-type: Simple
|
|||
common common-options
|
||||
ghc-options: -Wall -Wcompat
|
||||
default-extensions:
|
||||
NoFieldSelectors
|
||||
NoImplicitPrelude
|
||||
BlockArguments
|
||||
DataKinds
|
||||
DuplicateRecordFields
|
||||
|
@ -23,6 +21,8 @@ common common-options
|
|||
LambdaCase
|
||||
MultiWayIf
|
||||
NamedFieldPuns
|
||||
NoFieldSelectors
|
||||
NoImplicitPrelude
|
||||
OverloadedRecordDot
|
||||
OverloadedStrings
|
||||
PartialTypeSignatures
|
||||
|
|
|
@ -16,9 +16,6 @@ build-type: Simple
|
|||
|
||||
common common-config
|
||||
default-extensions:
|
||||
NoFieldSelectors
|
||||
NoImplicitPrelude
|
||||
NoImplicitPrelude
|
||||
BlockArguments
|
||||
DataKinds
|
||||
DeriveAnyClass
|
||||
|
@ -30,6 +27,9 @@ common common-config
|
|||
ImpredicativeTypes
|
||||
LambdaCase
|
||||
NamedFieldPuns
|
||||
NoFieldSelectors
|
||||
NoImplicitPrelude
|
||||
NoImplicitPrelude
|
||||
OverloadedRecordDot
|
||||
OverloadedStrings
|
||||
PartialTypeSignatures
|
||||
|
|
Loading…
Reference in a new issue