about summary refs log tree commit diff
AgeCommit message (Collapse)AuthorFilesLines
2021-01-31 r/2174 fix(users/Profpatsch/read-http): actually parse asciiProfpatsch3-3/+12
There might be exploits since we parsed the headers as utf8 even though we actually want to interpret them as ASCII. This fixes it, by using the ascii crate. Thanks to @sterni for noticing. Change-Id: I50b6a588d99b34e677cb22968cf0dfd8b331d11c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2457 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-31 r/2173 feat(users/Profpatsch/netencode): add record-splice-envProfpatsch1-0/+25
Splice a netencode record from stdin into the environment. Change-Id: I7eac19e18164e070e4463ee431d9b0e955857b9c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2454 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 r/2172 feat(users/Profpatsch/netencode): add decoder moduleProfpatsch1-0/+46
Decoders are implemented not directly on output types, but on trivial proxy types, so that we can easily combine those into a decoder, and then the associated type is the actual return value of the decoder. Change-Id: Ibce98fa09fc944e02ab327112ec7ffbc09815830 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2455 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 r/2171 feat(users/Profpatsch/execline): add exec helpersProfpatsch1-0/+27
Most tools end by execing into their argv, so here’s a small rust function which does the boilerplate. Change-Id: I9748955cf53828e02f04d7e8d74fbaf10c1158b5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2453 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 r/2170 refactor(users/Profpatsch/netencode): rust read from stdin helperProfpatsch1-1/+13
Change-Id: I195c0212e224f676de5db37807731b814f99e818 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2452 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 r/2169 refactor(users/Profpatsch/read-http): parse headers as utf8Profpatsch1-9/+11
Headers should always be ASCII, so let’s crash if they are not. The thing gets a lot easier to use, and clients who fail this restriction can just fuck off. Also actually print the results to stdout instead of stderr … Change-Id: I782c96c537ae11b541175e96453c4114e0a71b05 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2451 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 r/2168 fix(users/Profpatsch/lib): eprintenv should exec into progProfpatsch1-1/+1
Change-Id: I2eab4ce24871121381011c1cfc8ef5e042502cb2 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2450 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-31 r/2167 refactor(users/Profpatsch): move arglib_netencode into its own libProfpatsch2-21/+43
arglib is the simple idea of passing structured data via a conventional environment variable instead of implementing an optparser for every little tool. Pop the envvar, decode the contents, return the contents. Change-Id: Ie44148293a58aae9a0a613895176227d43b491bb Reviewed-on: https://cl.tvl.fyi/c/depot/+/2449 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-30 r/2166 feat(nix): add nix.tag, a way of discriminating via tagged unionsProfpatsch2-0/+237
Introduces the concept of a “tag”, a single-keyed attrset which annotates a nix value with a name. This can be used to implement tagged unions (by implying the list of possible tags is well-known), which has some overlap with how `nix.yants` does it. However, the more fascinating use-case is in concert with a so-called discriminator, `match` and hylomorphisms. The discriminator can take a nix value, and add tags to it based on some predicate. With `match`, we can then use that information to convert the discriminated values again. With `hylo`, we can combine both the “constructive” discriminator step with the “destructive” match step to recursively walk over a nix data structure (based on a description of how to recurse, e.g. through attrset values or list values), and then apply a transformation in one go. Change-Id: Ia335ca8b0881447fbbcb6bcd80f49feb835f1715 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2434 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-01-30 r/2165 feat(nix/readTree): add tests of the traversal logic in READMEProfpatsch15-1/+95
This should closely match the documented behaviour. It might still be missing some edge cases of course. Change-Id: I5c75fa045d5f3be8cf5eab787a02644500c14522 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2466 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-30 r/2164 feat(nix/readTree): add tests of the README exampleProfpatsch7-0/+47
First step to slowly giving readTree some coverage, so we can do refactoring without breaking functionality. Change-Id: If25a8c0fa9c4ac7472c0473372f10a9326cccaf7 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2465 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-30 r/2163 chore(nix/readTree): move function into __functorProfpatsch1-12/+13
We are going to export some tests under `nix.readTree.tests`, so in order to do that and still have `nix.readTree` be a function, let’s move it to `__functor`. This requires wiring the `args` and `initPath` arguments through explicitly. Change-Id: Ife7956b85d35e59c22174b42dcb7cca83ed868ea Reviewed-on: https://cl.tvl.fyi/c/depot/+/2464 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-30 r/2162 feat(nix/runTestsuite): add assertThrowsProfpatsch1-4/+22
Uses `builtins.tryEval` to check that the expression throws when `deepSeq`-ed. Change-Id: I0d57cc37f473bb733f57a1b1c0d889084152fd2f Reviewed-on: https://cl.tvl.fyi/c/depot/+/2463 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-01-30 r/2161 fix(nix/runTestsuite): wrap runTestsuite into derivationProfpatsch1-8/+26
Previously we would throw or return `{}`, which doesn’t integrate nicely into our CI; thus, let’s wrap it into a derivation which either fails the build or doesn’t. Change-Id: I65880d86b8393094661e57a0b32aafe748bf1dd5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2462 Reviewed-by: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
2021-01-30 r/2160 fix(ops/piplines/static-pipeline): add --show-trace to nix-buildProfpatsch1-1/+1
Change-Id: Ib0473f916b1436934844e620ce981f52d11e8512 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2467 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-01-30 r/2159 chore(3p|nix): Remove typed GoVincent Ambo7-89/+3
Nobody has actually done any experimentation with typed Go, so we're getting rid of it for now - it's causing annoying IFD during build graph generation. Change-Id: Ibac3dea98ebed1b3ee08acda184d24c500cf695d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2458 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org> Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-29 r/2158 feat(gs/emacs): Only run clj-kondo on clojure filesGriffin Smith2-1/+6
Change-Id: Ia7f18e0514f29e450dfc6a7bbdbc5e47ab7636b5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2460 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-01-29 r/2157 fix(gs/emacs): Don't try to load agda-modeGriffin Smith1-2/+2
It's not installed because it's broken right now Change-Id: I1bf198788fb90aabe3ba1a7b65399c3579983704 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2459 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-01-29 r/2156 feat(gs/emacs): Add a proptest snippetGriffin Smith1-0/+10
Change-Id: If1e0a206a19101928375cec230629de066f9326e Reviewed-on: https://cl.tvl.fyi/c/depot/+/2429 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-01-29 r/2155 feat(gs/emacs): Fix highlighting on line-number-current-lineGriffin Smith1-0/+1
This appears to be getting overridden by a package somewhere now Change-Id: I4f0776b5ae65e5cfa936e3636ce1bb5e2c85790a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2427 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-01-29 r/2154 feat(gs/emacs): Add < to evil-surround-pairs in rust-modeGriffin Smith1-0/+1
In addition to > Change-Id: I3b42d396e9eb3c4f6dcdf8ab2b804804100a103c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2426 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-01-29 r/2153 fix(gs/system): Don't try to set hard fd limitGriffin Smith1-6/+0
This gives a permission denied error when I try to log in Change-Id: Ibb9a66bb0ccec5fdf6839dd38ffd7e0a782687d6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2425 Reviewed-by: glittershark <grfn@gws.fyi> Tested-by: BuildkiteCI
2021-01-29 r/2152 fix(panettone): handle missing DNs when looking up displaynamessterni2-13/+21
* Fix find-user-by-dn raising an error condition if the search returns no results, return nil instead. * Adopt strategy of defaulting to “someone” as displayname if lookup fails for all usage of displaynames in panettone. I've tested this change for issues and comments created by missing users. Adjusting the displayname seems to fix all 500 being created by missing users both logged out and logged in. Change-Id: I0a84eb0631c4a49f1664bed6d03afa60dce6eb47 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2448 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-29 r/2151 feat(users/sterni): move clhs.clhs-lookup to clhs-lookupsterni4-3/+2
This way ci should pick up on clhs-lookup since only a single derivation is exposed with the default.nix and it is less cumbersome to type the attribute path (users.sterni.clhs.clhs-lookup → users.sterni.clhs-lookup). The exposed CLHS wasn't used for anything anyways and I can always expose it again using passthru or extra if it's ever merged. Change-Id: I6c5aeba1b58ca650700c6efa0913e4b42685ea6b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2461 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
2021-01-27 r/2150 feat(users/Profpatsch): add read-httpProfpatsch3-0/+217
reads a http request or response from stdin, and parses its headers into a netencoded record. Darn rust code took way too long to write. Change-Id: Ie99faa6d4bbd4996fa4e43fb119a11d85b611c99 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2447 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-27 r/2149 chore(users/Profpatsch/netencode): netencode.nix -> gen.nixProfpatsch2-2/+2
Change-Id: I7ccbfe863fbff65015caa8c740b80c4bb5c59dc1 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2446 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-27 r/2148 feat(users/Profpatsch/netencode): add dwim function to nix genProfpatsch1-1/+17
Basically what you expect, strings to text, ints to 64-bit integers, attrs and lists to nested records and lists. Change-Id: I9d3d841f32ab32a152cd61522f02ebde4a9b11d3 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2444 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-27 r/2147 fix(users/Profpatsch/netencode): remove Boxes in AST structProfpatsch1-27/+27
Apparently HashMap and Vec already do internal boxing, so the extra indirection in the value isn’t needed. Then, in order to make things uniform, move the boxing of `Sum` into the `Tag` value. No extra boxing in the recursion! \o/ Change-Id: Ic21d2e3e6ac0c6e1f045bf2c9d3e9c5af446fcff Reviewed-on: https://cl.tvl.fyi/c/depot/+/2443 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-26 r/2146 feat(3p/telega): Pin tdlib version used for telegaVincent Ambo3-6/+25
Recent channel updates have caused some issues for telega.el, mostly because the version of tdlib (the C++ library for Telegram) and the Emacs package are out of sync. This overrides the version used in the Emacs package to a "known good" commit. It would be useful to change the tdlib derivation in nixpkgs to make this version mismatch a hard build error. Change-Id: I9c994f783e1cc17e933432507cd13b65697efd4a Reviewed-on: https://cl.tvl.fyi/c/depot/+/2445 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-26 r/2145 chore(tazjin/emacs): Disable my default dark theme temporarilyVincent Ambo2-26/+0
There's a giant laser in the sky which makes it hard to read anything on a dark theme. Change-Id: I1dd0631dc8f8f693cceada4e62b25d4bde322e09 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2442 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-25 r/2144 feat(panettone): render a subset of markdown in issue subjectssterni6-4/+198
This is achieved by implementing a simple markdown renderer in CL which has the following limitations: * Only supports inline `code`, *emphasize 1*, _emphasize 2_ and ~~strikethrough~~. * Does not support nested markup. This allows for a relatively simple renderer which doesn't need to parse markdown into a in-memory data structure first. The rendered result is directly written to a stream to integrate well with cl-who which is also reused for rendering tags and xml-escaping strings. Fixes #90. Change-Id: Ice88ed770b1fab6365f3b93e8663e25077befa0b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2389 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi> Reviewed-by: tazjin <mail@tazj.in>
2021-01-25 r/2143 fix(panettone): escape value attr of inputs if dynamic contentsterni1-2/+3
I checked all :value attributes in panettone.lisp and wrapped them with who:escape-string if its value comes from user-influenced places. Static values or values from panettone internals are left as is. I did not do a comprehensive check for other places where something similar could happen though. Fixes #92. Change-Id: I134acc0d2f025f173588b37c19a93589365e879b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2401 Tested-by: BuildkiteCI Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-25 r/2142 feat(klatre): support offsets in format-dottimesterni1-7/+12
Instead of bothering with local-time's feature rich timezone support we just pass the offset as an integer and render it ourselves. Change-Id: I1df2d02153e3ef21ae3b2871ad6ef57d0f6eff86 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2423 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in> Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-25 r/2141 chore(tazjin/emacs): Remove some unused packagesVincent Ambo2-7/+0
Change-Id: I4adf7c1e028c997f776c635e1c6210f904274582 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2441 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-23 r/2140 chore(users/multi): remove user from the depot.multi12-218/+1
This commit removes my user directory in the depot, my user account on whitby, my entry in the LDAP database, and my entry in the website graph. I've had my fun with TVL, but I want to move on to spending time on some other things. This additionally removes aranea from the website graph, which they have requested in private. Change-Id: I2d098c8fe239f20d9f6c6cbf66a3dfb4a955a4cf Reviewed-on: https://cl.tvl.fyi/c/depot/+/2436 Tested-by: BuildkiteCI Reviewed-by: multi <depot@in-addr.xyz> Reviewed-by: lukegb <lukegb@tvl.fyi>
2021-01-23 r/2139 feat(users/Profpatsch/netencode): rename spec -> READMEProfpatsch2-1/+1
Change-Id: I0afda1c3705b8789cf6a0c57f7b74d005deb4ff5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2433 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-23 r/2138 feat(users/Profpatsch/netstring): add READMEProfpatsch1-0/+18
Change-Id: I2b5e74f376ac2212ec12fd85267e115621095639 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2432 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-23 r/2137 feat(users/Profpatsch/netstring): add rust to_netstringProfpatsch3-23/+48
Change-Id: I539472fc9ebc3ebe6c34e01fde9c08d3e2e3558c Reviewed-on: https://cl.tvl.fyi/c/depot/+/2431 Reviewed-by: Profpatsch <mail@profpatsch.de> Tested-by: BuildkiteCI
2021-01-20 r/2136 feat(tazjin/nittredir): Add Chrome extension to redirect to NitterVincent Ambo2-0/+25
There is another extension for this already, but it hooks in after the page has already started loading - doing it on the URL change handler is much faster. Change-Id: I442552cbd8bb040df999a1624cafd436f4a7b875 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2430 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-19 r/2135 feat(tazjin/emacs): Reset keyboard layout before locking screenVincent Ambo1-7/+9
I managed to lock myself out by having the layout set to Russian while locking the screen. This prevents that from happening. Change-Id: I15780d2a626d96abe0af8db3736fad75034e66d8 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2424 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-19 r/2134 chore(3p): Bump NixOS channels to 2021-01-19Vincent Ambo1-6/+6
Change-Id: I07b0d4991a07e15b1ab1ec8f371542868874eda5 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2421 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: Profpatsch <mail@profpatsch.de>
2021-01-19 r/2133 chore: Remove banned userV10-93/+0
Change-Id: Icd61f7c567a327c74a4f381168e94737b2b30702 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2422 Tested-by: BuildkiteCI Reviewed-by: edef <edef@edef.eu> Reviewed-by: tazjin <mail@tazj.in>
2021-01-19 r/2132 refactor(tazjin/rlox): Prepare scanner for shared useVincent Ambo5-12/+35
In the book, the clox interpreter has its own scanner which uses a pull-based model for a single pass compiler. I can't be bothered to write another scanner, or amend this one into pull-mode to work with the treewalk interpreter, so instead I will just reuse it and pull from a vector of tokens. The tokens are shared between both interpreters and the scanner is not what I'm interested in here. Change-Id: Ib07e89127fce2b047f9b3e1ff7e9908d798b3b2b Reviewed-on: https://cl.tvl.fyi/c/depot/+/2420 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-18 r/2131 feat(todolist): use static slapd user data for knownUserssterni4-141/+138
Since the slapd data is static and generated using nix, we can simply move the user list into ops/users, so it's recognized by readTree and we can use it as ops.users both in ops/nixos/tvl-slapd and web/todolist as a general purpose user registry for depot. Update docs/REVIEWS.md as well. Change-Id: I35caaaab70a5578c47cedc7f33077dd513766290 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2419 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-01-18 r/2130 chore(ops/whitby): Move ACME registrations to an @tvl.fyi addressVincent Ambo1-1/+1
Change-Id: I371550aa456c0fb64da4789feed494cc50497522 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2410 Tested-by: BuildkiteCI Reviewed-by: lukegb <lukegb@tvl.fyi> Reviewed-by: glittershark <grfn@gws.fyi>
2021-01-18 r/2129 refactor(tazjin/rlox): Add Interpreter trait for switching implsVincent Ambo8-102/+125
Change-Id: Iae28d64ce879014c5e5d7e145c536c1f16ad307d Reviewed-on: https://cl.tvl.fyi/c/depot/+/2418 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-17 r/2128 feat(tazjin/rlox): Implement simple arithmetic operatorsVincent Ambo4-1/+34
Change-Id: I9873bcd281053f4e9820a5119f5992a0b8cb8cfc Reviewed-on: https://cl.tvl.fyi/c/depot/+/2417 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-01-17 r/2127 feat(tazjin/rlox): Bootstrap VM for Lox bytecodeVincent Ambo7-25/+89
Change-Id: I479e20bf2087e5c4aa20e31b364c57ed0d961bcf Reviewed-on: https://cl.tvl.fyi/c/depot/+/2416 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
2021-01-17 r/2126 chore(tazjin/rlox): Move other modules under treewalk::Vincent Ambo8-22/+22
It's unclear if the second part of the book can reuse anything from the first part (I'm guessing probably the scanner, but I'll move that back if it turns out to be the case). Change-Id: I9411355929e31ac6e953599e51665406b1f48d55 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2415 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI
2021-01-17 r/2125 feat(tazjin/rlox): Track source lines along with bytecodeVincent Ambo2-3/+40
Change-Id: I272e73b9b1c9571fbfe4fa983fb4283ddee02bd4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2414 Reviewed-by: tazjin <mail@tazj.in> Tested-by: BuildkiteCI