This is kind of a chonker because I went into so many rabbit holes. Foremost this implements a simple “Refresh Artist” button that fetches current artist torrent groups. BUG: the `artist` endpoint torrent struct is shite, it’s missing most info that we get in the `search` endpoint torrent struct, plus it’s organized differently (e.g. the `artists` thingy is in the torrent_group not the torrent). I should switch everything over to fetching the `torrent_group.id`s first and then going through and slowly fetching every torrent group separately … however that might time out very quickly. ugh. There doesn’t seem to be a way of fetching multiple torrent groups. Random other shit & improvements: * intersperse for builders * fix json errors so that the structs don’t get too big (`restrictJson`) * show error messages as json so jaeger displays it with nested UI * color pretty-printed json outpt on command line * add some important integral functions to MyPrelude * add `sintersperse` and `mintersperse` to MyPrelude Change-Id: If8bfcd68dc5c905e118ad86d50d7416962bf55d4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/12960 Tested-by: BuildkiteCI Reviewed-by: Profpatsch <mail@profpatsch.de> |
||
|---|---|---|
| .gcroots | ||
| .nixery | ||
| corp | ||
| docs | ||
| fun | ||
| lisp | ||
| net | ||
| nix | ||
| ops | ||
| third_party | ||
| tools | ||
| tvix | ||
| users | ||
| views | ||
| web | ||
| .envrc | ||
| .git-blame-ignore-revs | ||
| .gitignore | ||
| .gitreview | ||
| .hgignore | ||
| .mailmap | ||
| .rgignore | ||
| buf.gen.yaml | ||
| buf.yaml | ||
| default.nix | ||
| LICENSE | ||
| OWNERS | ||
| README.md | ||
| RULES | ||
| rustfmt.toml | ||
depot
This repository is the monorepo for the community around The Virus Lounge, containing our personal tools and infrastructure. Everything in here is built using Nix.
A large portion of the software here is very self-referential, meaning that it exists to sustain the operation of the repository. This is the case because we partially see this as an experiment in tooling for monorepos.
Highlights
Services
-
Source code can be viewed primarily via
cgit-pinkon code.tvl.fyi, with code search being available through Livegrep on grep.tvl.fyi.The repository can be cloned using
gitfromhttps://cl.tvl.fyi/depot. -
All code in the depot, with the exception of code that is checked in to individual
//usersfolders, needs to be reviewed. We use Gerrit on cl.tvl.fyi for this. -
Issues are tracked via our own issue tracker on b.tvl.fyi. Its source code lives at
//web/panettone/. -
Smaller todo-list entries which do not warrant a separate issue are listed at todo.tvl.fyi.
-
We use Buildkite for CI. Recent builds are listed on tvl.fyi/builds and pipelines are configured dynamically via
//ops/pipelines. -
A search service that makes TVL services available via textual shortcuts is available: atward
All services that we host are deployed on NixOS machines that we manage. Their
configuration is tracked in //ops/{modules,machines}.
Nix
//nix/readTreecontains the Nix code which automatically registers projects in our Nix attribute hierarchy based on their in-tree location//tools/nixerycontains the source code of Nixery, a container registry that can build images ad-hoc from Nix packages//nix/yantscontains Yet Another Nix Type System, which we use for a variety of things throughout the repository//nix/buildGoimplements a Nix library that can build Go software in the style of Bazel'srules_go. Go programs in this repository are built using this library.//nix/buildLispimplements a Nix library that can build Common Lisp software. Currently only SBCL is supported. Lisp programs in this repository are built using this library.//web/blogand//web/atom-feed: A Nix-based static site generator which generates the web page and Atom feed for tazj.in (//users/tazjin/homepage) and tvl.fyi (//web/tvl)//web/bubblegumcontains a CGI-based web framework written in Nix.//nix/nint: A shebang-compatible interpreter wrapper for Nix.//tvixcontains initial work towards a modular architecture for Nix.
We have a variety of other tools and libraries in the //nix folder which may
be of interest.
Packages / Libraries
//net/alcoholic_jwtcontains an easy-to-use JWT-validation library for Rust//net/crimpcontains a high-level HTTP client using cURL for Rust//tools/emacs-pkgscontains various useful Emacs libraries, for example:dottime.elprovides dottime in the Emacs modelinenix-util.elprovides editing utilities for Nix filesterm-switcher.elis an ivy-function for switching between vterm bufferstvl.elprovides helper functions for interacting with the TVL monorepo
//lisp/klatreprovides a grab-bag utility library for Common Lisp
User packages
Contributors to the repository have user directories under
//users, which can be used for
personal or experimental code that does not require review.
Some examples:
//users/aspen/xanthous: A (WIP) TUI RPG, written in Haskell.//users/tazjin/emacs: tazjin's Emacs & EXWM configuration//users/tazjin/finito: A persistent finite-state machine library for Rust.
Licensing
Unless otherwise stated in a subdirectory, all code is licensed under the MIT license. See LICENSE for details.
Contributing
If you'd like to contribute to any of the tools in here, please check out the contribution guidelines and our code of conduct.
IRC users can find us in #tvl on hackint, which is also
reachable via XMPP at #tvl@irc.hackint.org (sic!).
Hackint also provide a web chat.