about summary refs log tree commit diff
path: root/users
AgeCommit message (Collapse)AuthorFilesLines
2021-04-17 r/2521 feat(grfn/yeren): Set timezone to Africa/CairoGriffin Smith2-1/+3
\o/ Change-Id: Ia456e044c48eee095408efc9f6b802b4337ea09f Reviewed-on: https://cl.tvl.fyi/c/depot/+/3026 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-17 r/2520 chore(grfn/achilles): Load shell.nix from depotGriffin Smith1-4/+2
Rather than pinning a nixpkgs in here, just import the relative path to the depot to load nixpkgs. Change-Id: I452727d45e4f44ecc99b86d17e88a413c1911c59 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3025 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-16 r/2518 feat(grfn/emacs): Configure notmuch popup window rulesGriffin Smith1-0/+8
I want notmuch to open in a full window, not as a bottom-of-the-screen popup. Change-Id: If539ff315fabae94d5a849c526c4322f9bdf8c61 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3024 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-16 r/2517 feat(grfn/home): Save GDB history across invocationsGriffin Smith1-0/+8
Change-Id: Icb02d64b036c07f3ab5f41f3b2c714ec164c2b05 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3023 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-16 r/2516 feat(grfn/yeren): Install rrGriffin Smith2-0/+14
This... mostly works! I had to install it from the latest master branch to get it functioning on my CPU, hopefully once they release a new version I can remove the override. Change-Id: I863d2e822b149838c58aa1c1e7dc73a127a0aeb8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3022 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-16 r/2515 feat(grfn/home): Install evcxrGriffin Smith1-0/+1
It's a REPL! for Rust! Change-Id: I920f976790bd974bb3a41e56b94b9e11bbb8e59b Reviewed-on: https://cl.tvl.fyi/c/depot/+/3021 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-16 r/2514 feat(tazjin/tverskoy): Enable TLP daemonVincent Ambo1-0/+1
Change-Id: Ie6d7a6fe07ffccf8dc18257eed54bb990e22e064 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3019 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-16 r/2513 chore(tazjin/tverskoy): Persist Firefox configurationVincent Ambo1-1/+2
Change-Id: If5ab38459106efdb978a21365a0f26ae82702679 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3018 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-14 r/2510 refactor(tazjin/dns): Add zone validity checks in CIVincent Ambo4-2/+17
Same as //ops/dns Change-Id: I0399efd2e48956ec91833386adff27d94d08ef1e Reviewed-on: https://cl.tvl.fyi/c/depot/+/3013 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-14 r/2509 chore(tazjin/cloud-dns): Remove oslo.pub zoneVincent Ambo1-8/+0
I don't have/use this domain anymore. Change-Id: I94181076d8f055ff4baaaa5fbc72eb9e86a25df2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3012 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-14 r/2508 feat(tazjin/emacs): Use native compilation by defaultVincent Ambo1-1/+1
Change-Id: I3804cabe9be95121beb5c3f31d4d2d7f84460b7b Reviewed-on: https://cl.tvl.fyi/c/depot/+/3011 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-14 r/2507 refactor(tazjin/emacs): Install google-c-style by defaultVincent Ambo3-18/+7
It is easier to do the inverse of this solution: Filter out the package on the machines that get it from elsewhere. Change-Id: I2abe112e4e38822d0fc7a47ea0bcedec1e0a96e3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3010 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-13 r/2506 feat(tazjin/emacs): Make my Emacs binary overridableVincent Ambo1-1/+3
... but keep defaulting to standard Emacs27, for $reasons Change-Id: Ife243ab18a03e6b0270a39c639cc493d71240362 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3007 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-13 r/2505 refactor(tazjin/emacs): Use Emacs packages exclusively from fixpointVincent Ambo1-9/+10
In preparation for native comp ... Change-Id: I4386ec195673aa664a353236b85d13c3258629e5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/3006 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-13 r/2501 refactor(users/grfn): build all haskell packages without ifdsterni4-25/+126
Since we need to override random to 1.2.0 globally for xanthous (otherwise propagation causes two versions of random to be propagated for xanthous) evaluating haskell related stuff using import from derivation can be very expensive since utilities like hpack and cabal2nix need to be built for that. This means that for every channel bump we potentially need to do a world rebuild of haskellPackages first. To solve this we check in the cabal2nix-generated nix expressions for owothia and xanthous. Change-Id: I8fff70b4b6c303d1920f8bcac53520a09999b206 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2921 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in>
2021-04-12 r/2497 refactor: Replace 'depotPath' with 'depot.path'Vincent Ambo2-3/+3
Instead of having two ways of accessing the path to the depot (one of which was stuttering, depot.depotPath) we settle on only one: depot.path. This was mostly used for NixOS module imports. Co-Authored-By: Florian Klink <flokli@flokli.de> Change-Id: I2c0db23383fc34f6ca76baaad4cc4af2d9dfae15 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2962 Tested-by: BuildkiteCI Reviewed-by: grfn <grfn@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-12 r/2495 feat(sterni/nix/fun): add hasEllipsissterni2-0/+43
As a complementation to builtins.functionArgs this function checks if the function has a set pattern that contains an ellipsis (i. e. `{ [arg, [ arg1, [ … ]]] ... }:`). The implementation of this is pretty cursed however since there is no clean way to do this in vanilla nix: We need to match on the output of builtins.toXML which does try to serialize functions by outputting their argument and information about it (whether it is a normal argument or a attribute set pattern, in the latter case it also serialize every component of the pattern). Change-Id: I0f33721811a3180cec205a0c98e6d92e10e92075 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2950 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-12 r/2491 refactor(gws.fyi): Remove cloudfront invalidation stepGriffin Smith1-3/+0
I'm not using cloudfront for gws.fyi anymore, so this invalidation step on deploy is pointless Change-Id: I153848666dc70acfc456b5dcf276bab2410c4716 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2946 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-12 r/2490 feat(gs/home): Install amberGriffin Smith1-0/+1
Change-Id: I26a397dd0d9f288fe43db8178e2f22089771ebc0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2945 Reviewed-by: grfn <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-12 r/2489 chore(grfn): Fix remaining references to glittersharkVincent Ambo2-4/+4
Change-Id: I60a60635dfef5c73f758fa6808992aeea3137301 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2944 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-12 r/2488 fix(grfn/home): Correct delta config for syntax-themeGriffin Smith1-1/+1
this got renamed apparently Change-Id: Ic616469eafc4b56eaaccc3df24988b0af73d90e2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2943 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-12 r/2487 feat(grfn/home): Script to rebuild home-managerGriffin Smith1-0/+6
Looks kinda like rebuild-mugwump, only for home yes, yes, this could gc halfway through, that's so unlikely that I don't care Change-Id: Iab3fdac15796e9f8158a9778b897bc3fe88e536e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2942 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-12 r/2486 feat(grfn/home): Install cargo-flamegraphGriffin Smith1-0/+1
Change-Id: I5102abfe8c0d486e22d8dc1c744bf542753cc870 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2941 Reviewed-by: grfn <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-12 r/2485 refactor(users/glittershark): Rename to grfnGriffin Smith350-42/+38
Rename my //users directory and all places that refer to glittershark to grfn, including nix references and documentation. This may require some extra attention inside of gerrit's database after it lands to allow me to actually push things. Change-Id: I4728b7ec2c60024392c1c1fa6e0d4a59b3e266fa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2933 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-11 r/2482 refactor(ops): Split //ops/nixos into different locationsVincent Ambo4-14/+11
Splits //ops/nixos into: * //ops/nixos.nix - utility functions for building systems * //ops/machines - shared machine definitions (read by readTree) * //ops/modules - shared NixOS modules (skipped by readTree) This simplifies working with the configuration fixpoint in whitby, and is overall a bit more in line with how NixOS systems in user folders currently work. Change-Id: I1322ec5cc76c0207c099c05d44828a3df0b3ffc1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2931 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-11 r/2481 chore(3p): Bump channels to 2021-04-09Vincent Ambo6-360/+13
Fixes included: * exposed gtest in the package set, required for protobuf * pinned SBCL to version 2.0.8: The channel moved it to >2.1, and a bunch of warnings seemed to be killing our builds - we should investigate this later. * removed kernel patches from //users/tazjin/frog: this machine is currently out of service anyways, not worth fixing while it's offline * removed steam & lutris from frog (they're currently broken) * removed Haskell overrides for hedgehog-classes & hgeometry-combinatorial * use gRPC sources from upstream and inject Abseil via Nix instead * fix for renamed grpc import in //third_party/nix * use libfprint-tod from upstream nixpkgs in glittershark/yeren and delete glittershark/pkgs/fprintd entirely, since all of the patches used there are available and working from upstream now (and stopped working here after the bump) Change-Id: Ia90e6f774f7b88bc9e60d28351b900ca43ee2695 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2901 Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Tested-by: BuildkiteCI
2021-04-11 r/2479 fix(3p/haskellPackages): re-add random 1.2.0 to fix xanthoussterni1-3/+1
The random_1_2_0 attribute of haskellPackages currently holds random 1.2.0 which is what we want to have. We need to disable tests because they cause an infinite recursion as basically all testing libraries depend on random. This has the nice side effect that we no longer need import from derivation for random 1.2.0 (but owothia and xanthous still use it). Re-enable CI for xanthous. Additinonally we need to deal with the fallout of the haskellPackages overlay now also being pulled in for some machines since cl/2910 and let pandoc compile with random 1.2.0. Change-Id: I78d220e5bd35f3469d80d69e77e712a529f21d33 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2924 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-11 r/2475 chore(eta/keys): add eta's new yubikey-agent SSH keyeta1-2/+3
I have two YubiKeys now, and using the older one is more painful. Add the new one, so I don't have to faff with gpg-agent in order to submit CLs. Change-Id: I3fcd82cdb53f88dc00025de97666872802e270e2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2928 Reviewed-by: eta <eta@theta.eu.org> Tested-by: BuildkiteCI
2021-04-10 r/2472 fix(glittershark/system): Build yerenSystem in CIVincent Ambo1-1/+1
This wasn't working because yerenSystem wasn't actually accessing the `system` attribute (like the other systems), which meant it was just an attribute set full of stuff. Change-Id: I0abe56f0a1f18e4e542cb458dfcdf81e8a0ddc01 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2923 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-10 r/2470 refactor: Move nixpkgs attribute to `third_party.nixpkgs`Vincent Ambo22-88/+80
Please read b/108 to make sense of this. This gets rid of the explicit list of exposed packages from nixpkgs, and instead makes the entire package set available at `third_party.nixpkgs`. To accommodate this, a LOT of things have to be very slightly shuffled around. Some of this was done in already submitted CLs, but this change is unfortunately still quite noisy. Pay extra attention to: * overlay-like functionality that was partially moved to actual overlays (partially as in, the minimum required to get a green build) * modified uses of the package set path, esp. in NixOS systems Special notes: * xanthous has been disabled in CI because of issues with the Haskell overlay * //third_party/nix has been disabled because of other unclear dependency issues Both of these will be tackled in a followup CL. Change-Id: I2f9c60a4d275fdb5209264be0addfd7e06c53118 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2910 Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2021-04-10 r/2469 chore(tazjin/emacs): Use telega from nixpkgsVincent Ambo1-3/+5
adisbladis fixed the tdlib/telega versioning issues in nixpkgs at some point, so this isn't required anymore. Change-Id: Ib98e73d0e4394765f08f5f3741f70adab459c22f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2909 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-10 r/2460 refactor(sterni): use pkgs over third_party to import from nixpkgssterni1-2/+2
This should ease migrating to a distinction between depot.third_party and pkgs (as in nixpkgs) in the future. Ref cl/2910, b/108. Change-Id: I53a854071fddd7c0d0526cc4c5b16998202082c6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2913 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-09 r/2458 feat(tazjin/tverskoy): Set search domain to 'tvl.su'Vincent Ambo1-0/+1
Change-Id: I33ae590481abae9e20ed1ac7db5de66187f26925 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2907 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-07 r/2455 feat(gs/yeren): Add KolideGriffin Smith3-0/+50
Add kolide, the endpoint monitoring system / MDM we're using at work, to the system derivation for my work computer. I hate MDMs almost universally, and this one is no different, but SOC2 waits for no one. Change-Id: I99bcb5341182a81512699d50b279efd9e1b2194b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2903 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-04 r/2437 feat(tverskoy): Configure whitby binary cacheVincent Ambo1-5/+15
Change-Id: I51d4b42998d6005da15e4d0bed82062cd4e36fe9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2848 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2435 chore(tazjin/tverskoy): Mount SD card on bootVincent Ambo1-0/+6
Change-Id: Ifab7ec411f8dbd932aeee15d45ebd53e24917d04 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2846 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2434 feat(users/Profpatsch/writers): make testing default for rustSimpleProfpatsch3-11/+14
This way we don’t have to explicitely wrap the rust crate with a `testRustSimple`, but it will be done automatically, unless `doCheck` is set to `false`. Change-Id: I32a81821eeff620e7da57332b0873495bb85a843 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2841 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-03 r/2420 feat(tazjin/nix.svg): Add a manually cleaned up SVG Nix logoVincent Ambo1-0/+50
Instead of ~500 lines, it's about ~50 and you can actually individually address the lambdas and their colours. I don't exactly know why I made this rather than going to bed, but it might come in handy sometime. Change-Id: I7aa25777ebac4a83fd3febb553fcad773836119b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2815 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-03 r/2419 chore: move all 3p buildRustCrate derivations to //third_partysterni6-295/+11
Profpatsch and me are basically the only users of depot.users.Profpatsch.writers.rustSimple*. To pull in the odd dependency we usually use buildRustCrate which is rather convenient. However we've picked up the bad habit of inlining these in a let somewhere instead of managing them in a more central location although there has been an (unsuccesful) attempt at this in //users/Profpatsch/rust-crates.nix. This CL moves all buildRustCrate based derivations into third_party.rust-crates and deletes any duplicate derivations we have accumulated in the tree. Change-Id: I8f68b95ebd546708e9af07dca36d72dba9ca8c77 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2769 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-04-03 r/2414 feat(gs/home): Set up lieer for work emailGriffin Smith1-5/+14
Change-Id: I49d6c8450b87cc876e93cba150327b5612eeebc3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2801 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-02 r/2408 refactor(glittershark/machines): switch to depot module argLuke Granger-Brown2-5/+5
Previously the tvl depot attrset was provided as the config.depot argument, but to make NixOS modules look more like the rest of the depot this is being switched to being provided as the "depot" argument instead. Change-Id: I7e011fe5c44ac3e4142177afd168f1bbc602d56f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2764 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-02 r/2406 refactor(camden): remove explicit depot.nix importLuke Granger-Brown1-3/+0
The depot.nix module is automatically brought in by systemFor, and shouldn't be included in user configs, since it's going away. Change-Id: Ib5b60203978b51dbff1f7bcc287f2ac9eb278823 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2762 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-02 r/2405 refactor(users/glittershark/system): switch to ops.nixos.nixosForLuke Granger-Brown1-26/+14
ops.nixos.nixosFor is intended to provide the "basic" readTree-like system arguments to NixOS systems; in particular, it provides "depot" as a module argument, as well as, for the moment, config.depot. Change-Id: I442c7d79ac0eb2ff8e1bf606f4e083e15eb0a8f4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2761 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-02 r/2403 fix(tazjin/homepage): Use most recent entry update time for feedVincent Ambo1-4/+5
This drops the annoying usage of builtins.currenTime, which means that my website stops constantly rebuilding. Change-Id: I44294b06588673846f473beb6533a5fa3410a1bd Reviewed-on: https://cl.tvl.fyi/c/depot/+/2767 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-02 r/2402 feat(tazjin/blog): Add distinction between published & updated timesVincent Ambo4-1/+13
Fixes a long-standing todo by adding an additional field for the time at which a post was updated, and handling this in both site generation (to note the update date after the publish date) and in Atom feed generation (by populating both the updated and published fields). Change-Id: If80db43459b2a0c77eea4dde7255651b5d6cd64b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2766 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-02 r/2396 feat(sterni/dot-time-man-pages): mdoc port of dotti.mesterni2-0/+73
More or less direct port of https://dotti.me to mdoc(7) with the following changes: * Add a RFC3339 column to the EXAMPLES table. RFC3339 is a well specified subset of ISO8601 whose specification is also more accessible so this could help someone out. * Add a SEE ALSO section linking to the web site * Add an AUTHORS section Change-Id: I8db00bd402697aa52f6f651f28692617b487f832 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2642 Tested-by: BuildkiteCI Reviewed-by: edef <edef@edef.eu>
2021-04-01 r/2393 feat(sterni/nint): shebang interpreter for nix scriptssterni3-0/+244
nint (short for nix interpreter) is a tiny wrapper around nix-instantiate which allows to run nix scripts, i. e. nix expressions that conform to a certain calling convention. A nix script runnable using nint must conform to the following constraints: * It must evaluate to a function which has a set pattern with an ellipsis as the single argument. * It must produce a string as a return value or fail. When invoked, a the expression receives the following arguments: * `currentDir`: the current working directory as a nix path * `argv`: a list of strings containing `argv` including `argv[0]` * extra arguments which are manually specified which allows for passing along dependencies or libraries, for example: nint --arg depot '(import /depot {})' my-prog.nix [ argv[1] … ] would pass along depot to be used in `my-prog.nix`. Such nix scripts are purely functional in a sense: The way inputs can be taken is very limited and causing effects is also only possible in a very limited sense (using builtins.fetchurl if TARBALL_TTL is 0, adding files and directories to the nix store, realising derivations). As an approximation, a program executed using nint can be thought of as a function with the following signature: λ :: environment → working directory → argv → stdout where environment includes: * the time at the start of the program (`builtins.currentTime`) * other information about the machine (`builtins.currentSystem` …) * environment variables (`builtins.getEnv`) * the file system (`builtins.readDir`, `builtins.readFile`, …) which is the biggest input impurity as it may change during evaluation Additionally import from derivation and builtin fetchers are available which introduce further impurities to be utilized. Future work: * Streaming I/O via lazy lists. This would allow usage of stdin and output before the program terminates. However this would require using libexpr directly or writing a custom nix interpreter. A description of how this would work can be found on the website of the esoteric programming language Lazy K: https://tromp.github.io/cl/lazy-k.html * An effect system beyond stdin / stdout. * Better error handling, support setting exit codes etc. These features would require either using an alternative or custom interpreter for nix (tvix or hnix) or to link against libexpr directly to have more control over evaluation. Change-Id: I61528516eb418740df355852f23425acc4d0656a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2745 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2021-04-01 r/2392 refactor(tazjin/nixos): Use setup scripts from //ops/nixosVincent Ambo1-41/+4
Change-Id: I8baf2404f0f6e9c4fad767911646cdc55051dd2e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2753 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-01 r/2391 fix(tazjin/blog): Make redirects from old links permanentVincent Ambo1-2/+1
Change-Id: I41d71f9aae7e64bdfef8f2b7142d13009b216eaa Reviewed-on: https://cl.tvl.fyi/c/depot/+/2752 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-01 r/2387 feat(gs/mugwump): Switch to cloudflare as lego providerGriffin Smith1-3/+4
Change-Id: Iba48c8ac8c45075ecb9741572bca9cea4f8b0f9d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2748 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI