style: format entire depot with nixpkgs-fmt

This CL can be used to compare the style of nixpkgs-fmt against other
formatters (nixpkgs, alejandra).

Change-Id: I87c6abff6bcb546b02ead15ad0405f81e01b6d9e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4397
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Reviewed-by: cynthia <cynthia@tvl.fyi>
Reviewed-by: edef <edef@edef.eu>
Reviewed-by: eta <tvl@eta.st>
Reviewed-by: grfn <grfn@gws.fyi>
This commit is contained in:
Vincent Ambo 2022-01-30 19:06:58 +03:00 committed by tazjin
parent 2d10d60fac
commit aa122cbae7
310 changed files with 7278 additions and 5490 deletions

View file

@ -11,12 +11,16 @@ let
getDay = f: head (matchSolution f);
solutionFiles = filter (e: dir."${e}" == "regular" && isSolution e) (attrNames dir);
solutions = map (f: let day = getDay f; in {
name = day;
value = depot.nix.writeElispBin {
name = "aoc2019";
deps = p: with p; [ dash s ht ];
src = ./. + ("/" + f);
};
}) solutionFiles;
in listToAttrs solutions
solutions = map
(f:
let day = getDay f; in {
name = day;
value = depot.nix.writeElispBin {
name = "aoc2019";
deps = p: with p; [ dash s ht ];
src = ./. + ("/" + f);
};
})
solutionFiles;
in
listToAttrs solutions

View file

@ -11,12 +11,16 @@ let
getDay = f: head (matchSolution f);
solutionFiles = filter (e: dir."${e}" == "regular" && isSolution e) (attrNames dir);
solutions = map (f: let day = getDay f; in depot.nix.writeElispBin {
name = day;
deps = p: with p; [ dash s ht p.f ];
src = ./. + ("/" + f);
}) solutionFiles;
in pkgs.symlinkJoin {
solutions = map
(f:
let day = getDay f; in depot.nix.writeElispBin {
name = day;
deps = p: with p; [ dash s ht p.f ];
src = ./. + ("/" + f);
})
solutionFiles;
in
pkgs.symlinkJoin {
name = "aoc2020";
paths = solutions;
}

View file

@ -23,7 +23,7 @@ let
posts = filter includePost (list post (import ./posts.nix));
rendered = pkgs.runCommandNoCC "tazjins-blog" {} ''
rendered = pkgs.runCommandNoCC "tazjins-blog" { } ''
mkdir -p $out
${lib.concatStringsSep "\n" (map (post:
@ -31,13 +31,16 @@ let
) posts)}
'';
in {
in
{
inherit posts rendered config;
# Generate embeddable nginx configuration for redirects from old post URLs
oldRedirects = lib.concatStringsSep "\n" (map (post: ''
location ~* ^(/en)?/${post.oldKey} {
return 301 https://tazj.in/blog/${post.key};
}
'') (filter (hasAttr "oldKey") posts));
oldRedirects = lib.concatStringsSep "\n" (map
(post: ''
location ~* ^(/en)?/${post.oldKey} {
return 301 https://tazj.in/blog/${post.key};
}
'')
(filter (hasAttr "oldKey") posts));
}

View file

@ -37,7 +37,7 @@
key = "the-smu-problem";
title = "The SMU-problem of messaging apps";
date = 1450354078;
content =./posts/the-smu-problem.md;
content = ./posts/the-smu-problem.md;
oldKey = "1450354078";
}
{

View file

@ -2,11 +2,12 @@
{ depot, pkgs, ... }:
let
checkZone = zone: file: pkgs.runCommandNoCC "${zone}-check" {} ''
checkZone = zone: file: pkgs.runCommandNoCC "${zone}-check" { } ''
${pkgs.bind}/bin/named-checkzone -i local ${zone} ${file} | tee $out
'';
in depot.nix.readTree.drvTargets {
kontemplate-works = checkZone "kontemplate.works"./kontemplate.works.zone;
in
depot.nix.readTree.drvTargets {
kontemplate-works = checkZone "kontemplate.works" ./kontemplate.works.zone;
tazj-in = checkZone "tazj.in" ./tazj.in.zone;
}

View file

@ -2,166 +2,173 @@
# and my personal Emacs configuration.
{ lib, pkgs, ... }:
pkgs.makeOverridable({ emacs ? pkgs.emacsGcc }:
let
emacsWithPackages = (pkgs.emacsPackagesGen emacs).emacsWithPackages;
pkgs.makeOverridable
({ emacs ? pkgs.emacsGcc }:
let
emacsWithPackages = (pkgs.emacsPackagesGen emacs).emacsWithPackages;
# If switching telega versions, use this variable because it will
# keep the version check, binary path and so on in sync.
currentTelega = epkgs: epkgs.melpaPackages.telega;
# If switching telega versions, use this variable because it will
# keep the version check, binary path and so on in sync.
currentTelega = epkgs: epkgs.melpaPackages.telega;
# $PATH for binaries that need to be available to Emacs
emacsBinPath = lib.makeBinPath [
(currentTelega pkgs.emacsPackages)
pkgs.libwebp # for dwebp, required by telega
];
# $PATH for binaries that need to be available to Emacs
emacsBinPath = lib.makeBinPath [
(currentTelega pkgs.emacsPackages)
pkgs.libwebp # for dwebp, required by telega
];
identity = x: x;
identity = x: x;
tazjinsEmacs = pkgfun: (emacsWithPackages(epkgs: pkgfun(with epkgs; [
ace-link
ace-window
avy
bazel
browse-kill-ring
cargo
clojure-mode
cmake-mode
company
counsel
counsel-notmuch
d-mode
direnv
dockerfile-mode
eglot
elfeed
elixir-mode
elm-mode
erlang
exwm
flymake
go-mode
google-c-style
gruber-darker-theme
haskell-mode
ht
hydra
idle-highlight-mode
ivy
ivy-prescient
jq-mode
kotlin-mode
lsp-mode
magit
markdown-toc
meson-mode
multi-term
multiple-cursors
nginx-mode
nix-mode
notmuch
paredit
password-store
pinentry
polymode
prescient
protobuf-mode
rainbow-delimiters
rainbow-mode
refine
request
restclient
rust-mode
sly
string-edit
swiper
telephone-line
terraform-mode
toml-mode
transient
undo-tree
use-package
uuidgen
vterm
web-mode
websocket
which-key
xelb
yaml-mode
yasnippet
zoxide
tazjinsEmacs = pkgfun: (emacsWithPackages (epkgs: pkgfun (with epkgs; [
ace-link
ace-window
avy
bazel
browse-kill-ring
cargo
clojure-mode
cmake-mode
company
counsel
counsel-notmuch
d-mode
direnv
dockerfile-mode
eglot
elfeed
elixir-mode
elm-mode
erlang
exwm
flymake
go-mode
google-c-style
gruber-darker-theme
haskell-mode
ht
hydra
idle-highlight-mode
ivy
ivy-prescient
jq-mode
kotlin-mode
lsp-mode
magit
markdown-toc
meson-mode
multi-term
multiple-cursors
nginx-mode
nix-mode
notmuch
paredit
password-store
pinentry
polymode
prescient
protobuf-mode
rainbow-delimiters
rainbow-mode
refine
request
restclient
rust-mode
sly
string-edit
swiper
telephone-line
terraform-mode
toml-mode
transient
undo-tree
use-package
uuidgen
vterm
web-mode
websocket
which-key
xelb
yaml-mode
yasnippet
zoxide
# Wonky stuff
(currentTelega epkgs)
# Wonky stuff
(currentTelega epkgs)
# Custom depot packages (either ours, or overridden ones)
tvlPackages.dottime
tvlPackages.nix-util
tvlPackages.passively
tvlPackages.rcirc
tvlPackages.term-switcher
tvlPackages.tvl
])));
# Custom depot packages (either ours, or overridden ones)
tvlPackages.dottime
tvlPackages.nix-util
tvlPackages.passively
tvlPackages.rcirc
tvlPackages.term-switcher
tvlPackages.tvl
])));
# Tired of telega.el runtime breakages through tdlib
# incompatibility. Target to make that a build failure instead.
tdlibCheck =
let
tgEmacs = emacsWithPackages(epkgs: [ (currentTelega epkgs) ]);
verifyTdlibVersion = builtins.toFile "verify-tdlib-version.el" ''
(require 'telega)
(defvar tdlib-version "${pkgs.tdlib.version}")
(when (or (version< tdlib-version
telega-tdlib-min-version)
(and telega-tdlib-max-version
(version< telega-tdlib-max-version
tdlib-version)))
(message "Found TDLib version %s, but require %s to %s"
tdlib-version telega-tdlib-min-version telega-tdlib-max-version)
(kill-emacs 1))
'';
in pkgs.runCommandNoCC "tdlibCheck" {} ''
# Tired of telega.el runtime breakages through tdlib
# incompatibility. Target to make that a build failure instead.
tdlibCheck =
let
tgEmacs = emacsWithPackages (epkgs: [ (currentTelega epkgs) ]);
verifyTdlibVersion = builtins.toFile "verify-tdlib-version.el" ''
(require 'telega)
(defvar tdlib-version "${pkgs.tdlib.version}")
(when (or (version< tdlib-version
telega-tdlib-min-version)
(and telega-tdlib-max-version
(version< telega-tdlib-max-version
tdlib-version)))
(message "Found TDLib version %s, but require %s to %s"
tdlib-version telega-tdlib-min-version telega-tdlib-max-version)
(kill-emacs 1))
'';
in
pkgs.runCommandNoCC "tdlibCheck" { } ''
export PATH="${emacsBinPath}:$PATH"
${tgEmacs}/bin/emacs --script ${verifyTdlibVersion} && touch $out
'';
in
lib.fix
(self: l: f: pkgs.writeShellScriptBin "tazjins-emacs" ''
export PATH="${emacsBinPath}:$PATH"
${tgEmacs}/bin/emacs --script ${verifyTdlibVersion} && touch $out
'';
in lib.fix(self: l: f: pkgs.writeShellScriptBin "tazjins-emacs" ''
export PATH="${emacsBinPath}:$PATH"
exec ${tazjinsEmacs f}/bin/emacs \
--debug-init \
--no-site-file \
--no-site-lisp \
--no-init-file \
--directory ${./config} ${if l != null then "--directory ${l}" else ""} \
--eval "(require 'init)" $@
'' // {
# Call overrideEmacs with a function (pkgs -> pkgs) to modify the
# packages that should be included in this Emacs distribution.
overrideEmacs = f': self l f';
# Call withLocalConfig with the path to a *folder* containing a
# `local.el` which provides local system configuration.
withLocalConfig = confDir: self confDir f;
# Build a derivation that uses the specified local Emacs (i.e.
# built outside of Nix) instead
withLocalEmacs = emacsBin: pkgs.writeShellScriptBin "tazjins-emacs" ''
export PATH="${emacsBinPath}:$PATH"
export EMACSLOADPATH="${(tazjinsEmacs f).deps}/share/emacs/site-lisp:"
exec ${emacsBin} \
exec ${tazjinsEmacs f}/bin/emacs \
--debug-init \
--no-site-file \
--no-site-lisp \
--no-init-file \
--directory ${./config} \
${if l != null then "--directory ${l}" else ""} \
--directory ${./config} ${if l != null then "--directory ${l}" else ""} \
--eval "(require 'init)" $@
'';
'' // {
# Call overrideEmacs with a function (pkgs -> pkgs) to modify the
# packages that should be included in this Emacs distribution.
overrideEmacs = f': self l f';
# Expose telega/tdlib version check as a target that is built in
# CI.
#
# TODO(tazjin): uncomment when telega works again
inherit tdlibCheck;
# meta.targets = [ "tdlibCheck" ];
}) null identity
) {}
# Call withLocalConfig with the path to a *folder* containing a
# `local.el` which provides local system configuration.
withLocalConfig = confDir: self confDir f;
# Build a derivation that uses the specified local Emacs (i.e.
# built outside of Nix) instead
withLocalEmacs = emacsBin: pkgs.writeShellScriptBin "tazjins-emacs" ''
export PATH="${emacsBinPath}:$PATH"
export EMACSLOADPATH="${(tazjinsEmacs f).deps}/share/emacs/site-lisp:"
exec ${emacsBin} \
--debug-init \
--no-site-file \
--no-site-lisp \
--no-init-file \
--directory ${./config} \
${if l != null then "--directory ${l}" else ""} \
--eval "(require 'init)" $@
'';
# Expose telega/tdlib version check as a target that is built in
# CI.
#
# TODO(tazjin): uncomment when telega works again
inherit tdlibCheck;
# meta.targets = [ "tdlibCheck" ];
})
null
identity
)
{ }

View file

@ -35,7 +35,7 @@ let
date = post.date;
});
formatDate = defun [ int string ] (date: readFile (runCommandNoCC "date" {} ''
formatDate = defun [ int string ] (date: readFile (runCommandNoCC "date" { } ''
date --date='@${toString date}' '+%Y-%m-%d' > $out
''));
@ -67,7 +67,8 @@ let
pageEntries = import ./entries.nix;
homepage = index ((map postToEntry users.tazjin.blog.posts) ++ pageEntries);
atomFeed = import ./feed.nix (args // { inherit entry pageEntries; });
in runCommandNoCC "website" {} ''
in
runCommandNoCC "website" { } ''
mkdir $out
cp ${homepage} $out/index.html
cp ${atomFeed} $out/feed.atom

View file

@ -23,7 +23,7 @@ let
});
allEntries = (with depot.users.tazjin.blog; map (blog.toFeedEntry config) posts)
++ (map pageEntryToEntry pageEntries);
++ (map pageEntryToEntry pageEntries);
feed = {
id = "https://tazj.in/";
@ -39,4 +39,5 @@ let
entries = allEntries;
};
in writeText "feed.atom" (atom-feed.renderFeed feed)
in
writeText "feed.atom" (atom-feed.renderFeed feed)

View file

@ -1,7 +1,8 @@
# This file configures camden.tazj.in, my homeserver.
{ depot, pkgs, lib, ... }:
config: let
config:
let
nginxRedirect = { from, to, acmeHost }: {
serverName = from;
useACMEHost = acmeHost;
@ -9,18 +10,21 @@ config: let
extraConfig = "return 301 https://${to}$request_uri;";
};
in lib.fix(self: {
in
lib.fix (self: {
# Disable the current ACME module and use the old one from 19.09
# instead, until the various regressions have been sorted out.
# TODO(tazjin): Remove this once the new ACME module works.
disabledModules = [ "security/acme" ];
imports =
let oldChannel = fetchTarball {
# NixOS 19.09 on 2020-10-04
url = "https://github.com/NixOS/nixpkgs-channels/archive/75f4ba05c63be3f147bcc2f7bd4ba1f029cedcb1.tar.gz";
sha256 = "157c64220lf825ll4c0cxsdwg7cxqdx4z559fdp7kpz0g6p8fhhr";
};
in [
let
oldChannel = fetchTarball {
# NixOS 19.09 on 2020-10-04
url = "https://github.com/NixOS/nixpkgs-channels/archive/75f4ba05c63be3f147bcc2f7bd4ba1f029cedcb1.tar.gz";
sha256 = "157c64220lf825ll4c0cxsdwg7cxqdx4z559fdp7kpz0g6p8fhhr";
};
in
[
"${depot.path}/ops/modules/quassel.nix"
"${depot.path}/ops/modules/smtprelay.nix"
"${oldChannel}/nixos/modules/security/acme.nix"
@ -37,8 +41,14 @@ in lib.fix(self: {
boot = {
initrd = {
availableKernelModules = [
"ahci" "xhci_pci" "usbhid" "usb_storage" "sd_mod" "sdhci_pci"
"rtsx_usb_sdmmc" "r8169"
"ahci"
"xhci_pci"
"usbhid"
"usb_storage"
"sd_mod"
"sdhci_pci"
"rtsx_usb_sdmmc"
"r8169"
];
kernelModules = [ "dm-snapshot" ];
@ -152,7 +162,7 @@ in lib.fix(self: {
};
# Set up a user & group for general git shenanigans
groups.git = {};
groups.git = { };
users.git = {
group = "git";
isSystemUser = true;
@ -220,9 +230,9 @@ in lib.fix(self: {
# Forward logs to Google Cloud Platform
services.journaldriver = {
enable = true;
logStream = "home";
googleCloudProject = "tazjins-infrastructure";
enable = true;
logStream = "home";
googleCloudProject = "tazjins-infrastructure";
applicationCredentials = "/etc/gcp/key.json";
};

View file

@ -1,6 +1,7 @@
{ depot, lib, pkgs, ... }:
config: let
config:
let
inherit (pkgs) lieer;
quasselClient = pkgs.quassel.override {
@ -8,7 +9,8 @@ config: let
enableDaemon = false;
monolithic = false;
};
in lib.fix(self: {
in
lib.fix (self: {
imports = [
"${depot.path}/ops/modules/v4l2loopback.nix"
];
@ -61,8 +63,8 @@ in lib.fix(self: {
nix = {
maxJobs = 48;
binaryCaches = ["ssh://nix-ssh@whitby.tvl.fyi"];
binaryCachePublicKeys = ["cache.tvl.fyi:fd+9d1ceCPvDX/xVhcfv8nAa6njEhAGAEe+oGJDEeoc="];
binaryCaches = [ "ssh://nix-ssh@whitby.tvl.fyi" ];
binaryCachePublicKeys = [ "cache.tvl.fyi:fd+9d1ceCPvDX/xVhcfv8nAa6njEhAGAEe+oGJDEeoc=" ];
};
networking = {

View file

@ -1,6 +1,7 @@
{ depot, lib, pkgs, ... }:
config: let
config:
let
quasselClient = pkgs.quassel.override {
client = true;
enableDaemon = false;
@ -15,7 +16,8 @@ config: let
${pkgs.xorg.setxkbmap}/bin/setxkbmap -option caps:super
exec ${pkgs.xsecurelock}/bin/xsecurelock
'';
in lib.fix(self: {
in
lib.fix (self: {
imports = [
"${depot.third_party.impermanence}/nixos.nix"
"${pkgs.home-manager.src}/nixos"
@ -43,7 +45,7 @@ in lib.fix(self: {
};
fileSystems = {
"/" = {
"/" = {
device = "tmpfs";
fsType = "tmpfs";
options = [ "defaults" "size=8G" "mode=755" ];
@ -320,109 +322,109 @@ in lib.fix(self: {
zoxide
]);
systemd.user.services.lieer-tazjin = {
description = "Synchronise mail@tazj.in via lieer";
script = "${pkgs.lieer}/bin/gmi sync";
systemd.user.services.lieer-tazjin = {
description = "Synchronise mail@tazj.in via lieer";
script = "${pkgs.lieer}/bin/gmi sync";
serviceConfig = {
WorkingDirectory = "%h/mail/account.tazjin";
Type = "oneshot";
serviceConfig = {
WorkingDirectory = "%h/mail/account.tazjin";
Type = "oneshot";
};
};
systemd.user.timers.lieer-tazjin = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnActiveSec = "1";
OnUnitActiveSec = "180";
};
};
home-manager.useGlobalPkgs = true;
home-manager.users.tazjin = { config, lib, ... }: {
imports = [ "${depot.third_party.impermanence}/home-manager.nix" ];
home.persistence."/persist/tazjin/home" = {
allowOther = true;
directories = [
".cargo"
".config/audacity"
".config/google-chrome"
".config/quassel-irc.org"
".config/spotify"
".config/syncthing"
".elfeed"
".gnupg"
".local/share/Steam"
".local/share/audacity"
".local/share/direnv"
".local/share/fish"
".local/share/keyrings"
".local/share/zoxide"
".mozilla/firefox"
".password-store"
".rustup"
".ssh"
".steam"
".telega"
"go"
"mail"
];
files = [
".notmuch-config"
];
};
home.activation.screenshots = lib.hm.dag.entryAnywhere ''
$DRY_RUN_CMD mkdir -p $HOME/screenshots
'';
programs.git = {
enable = true;
userName = "Vincent Ambo";
userEmail = "mail@tazj.in";
extraConfig = {
pull.rebase = true;
init.defaultBranch = "canon";
};
};
systemd.user.timers.lieer-tazjin = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnActiveSec = "1";
OnUnitActiveSec = "180";
};
};
home-manager.useGlobalPkgs = true;
home-manager.users.tazjin = { config, lib, ... }: {
imports = [ "${depot.third_party.impermanence}/home-manager.nix" ];
home.persistence."/persist/tazjin/home" = {
allowOther = true;
directories = [
".cargo"
".config/audacity"
".config/google-chrome"
".config/quassel-irc.org"
".config/spotify"
".config/syncthing"
".elfeed"
".gnupg"
".local/share/Steam"
".local/share/audacity"
".local/share/direnv"
".local/share/fish"
".local/share/keyrings"
".local/share/zoxide"
".mozilla/firefox"
".password-store"
".rustup"
".ssh"
".steam"
".telega"
"go"
"mail"
];
files = [
".notmuch-config"
];
};
home.activation.screenshots = lib.hm.dag.entryAnywhere ''
$DRY_RUN_CMD mkdir -p $HOME/screenshots
programs.fish = {
enable = true;
interactiveShellInit = ''
${pkgs.zoxide}/bin/zoxide init fish | source
'';
programs.git = {
enable = true;
userName = "Vincent Ambo";
userEmail = "mail@tazj.in";
extraConfig = {
pull.rebase = true;
init.defaultBranch = "canon";
};
};
programs.fish = {
enable = true;
interactiveShellInit = ''
${pkgs.zoxide}/bin/zoxide init fish | source
'';
};
services.screen-locker = {
enable = true;
enableDetectSleep = true;
inactiveInterval = 10; # minutes
lockCmd = "${screenLock}/bin/tazjin-screen-lock";
};
services.picom = {
enable = true;
vSync = true;
backend = "glx";
};
# Enable the dunst notification daemon, but force the
# configuration file separately instead of going via the strange
# Nix->dunstrc encoding route.
services.dunst.enable = true;
xdg.configFile."dunst/dunstrc" = {
source = depot.users.tazjin.dotfiles.dunstrc;
onChange = ''
${pkgs.procps}/bin/pkill -u "$USER" ''${VERBOSE+-e} dunst || true
'';
};
systemd.user.startServices = true;
};
system.stateVersion = "20.09";
services.screen-locker = {
enable = true;
enableDetectSleep = true;
inactiveInterval = 10; # minutes
lockCmd = "${screenLock}/bin/tazjin-screen-lock";
};
services.picom = {
enable = true;
vSync = true;
backend = "glx";
};
# Enable the dunst notification daemon, but force the
# configuration file separately instead of going via the strange
# Nix->dunstrc encoding route.
services.dunst.enable = true;
xdg.configFile."dunst/dunstrc" = {
source = depot.users.tazjin.dotfiles.dunstrc;
onChange = ''
${pkgs.procps}/bin/pkill -u "$USER" ''${VERBOSE+-e} dunst || true
'';
};
systemd.user.startServices = true;
};
system.stateVersion = "20.09";
})

View file

@ -4,24 +4,26 @@
with pkgs;
let tex = texlive.combine {
inherit (texlive)
beamer
beamertheme-metropolis
etoolbox
euenc
extsizes
fontspec
lualibs
luaotfload
luatex
minted
ms
pgfopts
scheme-basic
translator;
};
in stdenv.mkDerivation {
let
tex = texlive.combine {
inherit (texlive)
beamer
beamertheme-metropolis
etoolbox
euenc
extsizes
fontspec
lualibs
luaotfload
luatex
minted
ms
pgfopts
scheme-basic
translator;
};
in
stdenv.mkDerivation {
name = "nuug-bootstrapping-slides";
src = ./.;