about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2021-04-04 r/2431 feat(panettone): Add some more info to emailsGriffin Smith1-12/+22
Add a little bit more information to issue notification emails, including the IDs of issues and links to the issues themselves. Change-Id: Ia54209f936a37c6dbdb60ebff5bb8c1034cffc9a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2809 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2430 feat(panettone): Send notifications when issues are reopenedGriffin Smith1-0/+15
Send notifications both to IRC and email when issues are reopened after being closed Change-Id: I3a63419c6547ac28eeaafbe212a2a01a5fc2b5af Reviewed-on: https://cl.tvl.fyi/c/depot/+/2808 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2429 feat(panettone): Send emails when issues are closedGriffin Smith3-18/+42
Send notification emails to the same group of users who receive notifications on issue comments when issues are marked as closed. This also takes the opportunity to generalize issue notification emails a bit, and lay the groundwork for (but not implement) explicit issue subscriber lists. Change-Id: Ie2572ed3ad0207d415b4c362438f772925e7a2c5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2807 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2428 feat(panettone): Add a settings pageGriffin Smith4-6/+70
Add a user settings page, with a single checkbox that allows disabling receiving all email notifications. Change-Id: Ibef2a497cd59f93b695ff8b9cd36047e514e00c2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2806 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2427 feat(panettone): Send email notifications for commentsGriffin Smith4-2/+46
When a user posts a comment on an issue, send email notifications (respecting the enable-email-notifications setting) to the author of that issue and all the other users who have commented on that issue. Since the oauth & gmail API stuff that the relay does is slow, this happens in a background thread. Change-Id: Ic00c265deab1030d9ba64c29c9f56314dd179141 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2805 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2426 feat(panettone): Add functions to send email notificationsGriffin Smith4-1/+65
Add a new package to panettone, :panettone.email with functions to send email notifications to users through the SMTP relay on whitby, respecting the value of `enable_email_notifications` on the user_settings table. Change-Id: Ia4ec65965abda06f1fadb178143d66bb8eae6482 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2804 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2425 feat(panettone): Add a user settings tableGriffin Smith2-1/+33
Add a new user-settings table and dao class, with a flag that allows an individual user to disable receiving email notifications Change-Id: I537bfca74490941934c0adc7328bcd6ed5c9c0b9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2803 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <mail@tazj.in>
2021-04-04 r/2424 revert(3p/gerrit): chore(3p/gerrit): update gerrit and pluginslukegb10-68/+65
This reverts commit f59c6214c4b1812120bd500a23d1cb6e160d6665. Reason for revert: new gerrit's JS appears to not have compiled correctly; rolling back until I can figure out why Change-Id: If16fe341aad25bef30ed7be8c6ac49cadf2a732c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2821 Reviewed-by: lukegb <lukegb@tvl.fyi> Tested-by: BuildkiteCI
2021-04-04 r/2423 chore(3p/gerrit): update gerrit and pluginsLuke Granger-Brown10-65/+68
Yeet. Change-Id: I4de6453419f520a44af19d561a36d242195a64e9 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2817 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-03 r/2422 refactor(3p/rust-crates): use imported buildRustCrate everywheresterni1-28/+28
A bit less noisy in the definitions and the nix parser can already detect it being misspelled. Change-Id: I979da11471187e36cde5c015aaf654f925757a8b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2814 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-03 r/2421 feat(3p/rust-crates): get dependencies from the depot fix pointsterni1-1/+3
I think it is good practice to always get dependencies from the depot fix point if they are exposed. The reasoning for this is that if we improve the support for overriding in depot, say by introducing a depot.extend functions or even full blown overlay support, this will already work as expected. Change-Id: Ibb8dffcf32e8f46817a2db2da26139fabdce55bc Reviewed-on: https://cl.tvl.fyi/c/depot/+/2770 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
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_partysterni7-84/+76
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/2418 feat(3p/apereo-cas): add the LDAP DN to the list of attributesLuke Granger-Brown1-2/+4
Panettone currently uses the LDAP DN as the user key, so we collect it here so that we can later make sure its exposed to Panettone. Change-Id: Ia2048cb479a2afe6fe9f47181115ae7ec13dedf3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2811 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-03 r/2417 chore(3p/apereo-cas): move TVL configLuke Granger-Brown1-0/+3
There's some non-secret config that made its way into the secrets file. This CL moves it into git so we can track it properly. Change-Id: I3f5bf5e1f7addabb199997fb7b1f805b9157fbbe Reviewed-on: https://cl.tvl.fyi/c/depot/+/2810 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-03 r/2416 feat(monorepo-gerrit): use CAS for authenticationLuke Granger-Brown1-13/+12
This drops the old LDAP configuration and uses CAS instead. All hail the hypnotoad. Change-Id: I515a213f09073bb52bfb75afe2988b935a076087 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2783 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-03 r/2415 chore(3p/gerrit_plugins): init oauthLuke Granger-Brown3-0/+72
Add the OAuth gerrit plugin to our mini collection of Gerrit plugins. This includes a patch to make the plugin work correctly with CAS 6.x, which has changed the attributes into a JSON object with the attributes nested inside, instead of a JSON list. Change-Id: I4741f137cca9c8eb45b9ea660fb4cbf6962be9a4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2782 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
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-03 r/2413 feat(3p/lisp): Add cl-smtpGriffin Smith2-0/+29
Change-Id: Idbf63e346b696fb6704390d7a76a2f2b2d3bc190 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2802 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-03 r/2412 chore(3p/gerrit_plugins): attempt to stabilise hashes a bitLuke Granger-Brown1-7/+3
I'm dropping the leaveDotGit and deepClone bits; they were set like that purely to try to make the build stamping work. In practice, not only does the build stamping not work, but it also means we hit some inconveniently-different hashes from time to time when gitiles does... something??? on its backend. I'm also putting some gcroots for these on whitby, which should also help a bit, although it's a bit of a hack. Change-Id: Ie6082248393e62795c18b1971fc2d16f4e8cc81d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2781 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-03 r/2411 feat(www/tazj.in): Add a temporary route for serving static blobsVincent Ambo1-0/+5
Until I come up with a better idea. Change-Id: Ie44cae4c2df264cbe1a70f5ebcca814262dd2800 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2771 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-02 r/2410 chore(clbot): reformat messagesLuke Granger-Brown1-2/+2
Instead of putting the subject in quotes, we instead reorder the message to be of the format: CL/2768 applied by lukegb - chore(clbot): reformat messages - https://cl.tvl.fyi/2768 Change-Id: I77d19525c399396a91797f423bdfc92069d47f9f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2768 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-02 r/2409 chore(ops/nixos): finish removal of depot.nixLuke Granger-Brown2-18/+0
All user configs and modules have been migrated to using the depot module parameter. All hail the hypnotoad. Change-Id: Ic05c61fccba3ac505a339283b6ef3105a2d0711c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2765 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
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/2407 refactor(ops/nixos): migrate to depot module argLuke Granger-Brown15-35/+30
Previously the depot argument was provided as config.depot, but the "new way" of doing things (which is more like the args list provided in the rest of the depot) is to provide this as the "depot" NixOS module argument instead. Change-Id: Ib48b1c7c1bdff9c1eb0618c6cbacc22b651f5f98 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2763 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> 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/2404 refactor(ops/nixos): add "depot" argument to NixOS modulesLuke Granger-Brown1-5/+13
For the moment I've opted to not import all of the other things we'd usually provide to things imports via readTree, because I think it's a bit dangerous to accidentally overwrite things like NixOS' notion of "lib" with our own version. So for the moment, baseModule provides only "depot". Change-Id: I3db9132a3d9227055d4c1b00f02effcb84edcc53 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2760 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
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/2401 feat(ops/nixos/www): Enable tvl.su aliases for dev toolsVincent Ambo5-0/+5
This is not for the domain root though, as that's going to be something else eventually. The canonical URLs are the .fyi ones (at least for now), and some of these tools will eventually generate links that make user sessions started from *.tvl.su converge on *.tvl.fyi. Relates to b/98 Change-Id: I1c3bcf72a3063059002e4b0bdd57c269a410a8bc Reviewed-on: https://cl.tvl.fyi/c/depot/+/2758 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2021-04-02 r/2400 feat(3p/cgit): limit width of div#summary, i. e. /about/**sterni2-0/+5
Decreased text width for the /about pages should increase readability considerably as jumping back to the beginning is hard for longer lines. The result is still not perfect as the font size for the /about pages is rather small and many lines thus get broken somewhat awkwardly. We could probably migitate that using a larger font size. The implementation choice of adding a tvl-extra.css which we inject into cgit.css in preBuild is for simplicity: We don't need to worry about routing an extra CSS file and loading it from the right location via extra cgit head entries and serving it at the correct location using either nginx or thttpd. A drawback of this is however that iteration is slowed down by cgit's compilation time. Additionally, this should be the basis for implementing a bubblegum themed cgit for Profpatsch. Change-Id: I18060f735167acd623cef7a17c83408978461249 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2756 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-02 r/2399 feat(ops/users): add milan to userssterni1-0/+5
Change-Id: I77e5e9a0ae1bf2ee59ac4967c5481b9044f97934 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2757 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-04-02 r/2398 feat(ops/whitby): add sterni to trusted userssterni1-1/+4
I am somewhat trustworthy… maybe? Also I tend to gc depot stuff so ssh serve would be neat. Change-Id: I4672f20a32a756692dd156b5e40e5a7f37ba5ad0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2660 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: glittershark <grfn@gws.fyi>
2021-04-02 r/2397 feat(3p/cgit): enableParallelBuildingsterni1-0/+2
This gives a decent compilation speedup even on slow machines, so seems worth it. Let's hope the cgit build process is not racy. Change-Id: Ic4ae72789da2ccae16fd48e46aec624244b25035 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2755 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
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/2395 chore(web/bubblegum): add OWNERS filesterni1-0/+3
Forgot to add this when moving it out of my //users directory. Change-Id: If6d30a2a58a6bd73e160706cb706e3b2e100e909 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2754 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-01 r/2394 feat(web/bubblegum): nix CGI programming frameworksterni9-0/+586
So here is what has been keeping me up at night: At some point I realized that nix actually made a somewhat passable language for CGI programming: * That `builtins.getEnv` exists as one of the impurities of Nix is perfect as environment variables are the main way of communication from the web server to the CGI application. * We can actually read from the filesystem via builtins.readDir and builtins.readFile with bearable overhead if we avoid importing the used paths into the nix store. * Templating and routing are convenient to implement via indented strings and attribute sets respectively. Of course there are obvious limitation: * The overhead of derivations is probably much to great for them to be useful via IfD. * Even without derivations, nix evaluation is very slow to the point were a trivial application takes between 100ms and 400ms to produce a response. * We can't really cause effects other than producing a response which makes it not viable for a lot of applications. There are some ways around this: * With a custom interpreter we could have streaming and multiplexed I/O (using lazy lists emulated via attrsets) to cause such effects, but it would probably perform terribly. * We can use builtins.fetchurl to call other HTTP-based microservices, but only in very limited constraints, i. e. only GET, no headers, and only if the tarball ttl is set to 0 in the global nix.conf. * Terrible error handling capabilities because builtins.tryEval actually doesn't catch a lot of errors. To prove that it actually works, there are some demo applications, which I invite you to run and potentially break horribly: nix-build -A web.bubblegum.examples && ./result # navigate to http://localhost:9000 The setup uses thttpd and executes the nix CGI scripts using users.sterni.nint which automatically passed `depot`, so they can import the cgi library. Change-Id: I3a22a749612211627e5f8301c31ec2e7a872812c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2746 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
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/2390 chore(third_party/cgit): use lib instead of stdenv.libFlorian Klink1-5/+6
Getting `lib` from `stdenv.lib` is deprecated, and throws warnings. Change-Id: Ic925818c1b5a67d15d6d40ad784554328cd603e0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2751 Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-04-01 r/2389 style(web/todolist): List paths without 'At ' prefixVincent Ambo1-1/+1
This also looks much cleaner than before. Change-Id: I767b881c73699151afc03746c04e413e74f30387 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2750 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
2021-04-01 r/2388 feat(web/todolist): Drop 'TODO' prefixes in individual itemsVincent Ambo1-5/+10
This modifies the capture regex executed by `jq` to capture the TODO text itself as a separate capture group, which is then used for the content of the TODO listing. The web listing looks much cleaner this way. Change-Id: I00a14da57b315a353f700c112ba33f38e16f1f85 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2749 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de>
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
2021-04-01 r/2386 feat(gs/mugwump): Set up ddclientGriffin Smith1-0/+26
The way this loads the api key is a hack, but also... I don't care! Change-Id: I4d417b1a824007620661188b60b21a1f73867dca Reviewed-on: https://cl.tvl.fyi/c/depot/+/2747 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-04-01 r/2385 feat(sterni/nix/url): implement urldecodingsterni2-0/+46
We use builtins.split directly as it should be a bit more efficient as lib.splitStrings. Also its returning of a list for every regex match is useful to update the state while parsing the tokens: * The tokens are obtained by splitting the string at every '%' * Everytime we see a boundary (that is a list in the returned list of builtins.split), we know that the first two chars of the next string are a percent encoded character. One implementation flaw is that it will currently crash if it encounters mal-formed URLs (since int.fromHex chrashes if it encounters any non hex digit characters) and accepts some malformed urlencoding like "foo %A". Change-Id: I90d08d7a71b16b4f4a4879214abd7aeff46c20c8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2744 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-01 r/2384 feat(third_party): init hii at 1.0.0Profpatsch1-0/+3
`hii` is a derived rewrite of suckless’s `ii`. It is not backwards compatible. Change-Id: Ife2a43863b5b6ba38333d7ae5f2cb9bd4787b5fc Reviewed-on: https://cl.tvl.fyi/c/depot/+/2706 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: sterni <sternenseemann@systemli.org>
2021-04-01 r/2383 feat(third_party): add dhall packages from easy-dhall-nixProfpatsch1-1/+20
About to do some dhalllll! \o/ Change-Id: Ie58c335d80f4a5abeb8296ece5a24377f07e6369 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2585 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-04-01 r/2382 feat(users/Profpatsch/netencode): fully streaming parserProfpatsch1-39/+95
In order to arbitrarily split netencode over multiple reads, we need to make the parser completely streaming, so that it recognizes all cases where it needs more input. Luckily, this is fairly trivial, after working around a bunch of overeager parsing. The tricky part was the giant `alt`, where inner parsers would start consuming input and thus become incomplete when they fail afterwards. Sinc the format *always* starts the different types with one discriminator char, we can use that to instantly return the parser and try the next one instead. The other tricky part was that lists and records would parse all inner elements and then choke on the empty string after the last element, because the inner parser would consume at least the descriminator, and an empty string is always `Incomplete`. We wrap these into a small combinator which plays nice with `many0` in that regard. Change-Id: Ib8d15d9a7cab19d432c6b24a35fcad6a5a72b246 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2704 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> Reviewed-by: sterni <sternenseemann@systemli.org>