TL;DR:
- Create an index page to list blog posts
- Drop blog.wpcarro.dev -> wpcarro.dev/blog
- Create fragments directory to host reusable static website components
- Consume fragments in wpcarro.dev and wpcarro.dev/blog for brand consistency
Change-Id: Ib8440300c008c3c0c5e5a6f207e4ea207dd41b47
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4717
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Figured this out by opening web inspector for the discord web app and
looking at the responses for role memeber counts.
Change-Id: I0fa6418c4d1781a65ef50c9ed14665e2b142ae32
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4707
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Hugo is a bit too heavyweight for my taste.
Change-Id: I331bc5898bd40f1a03bbde8ad69fe3cc9f72c18b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4704
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
I have a (unconfirmed) suspicion that this is paying more in CPU time
than it's saving in disk space - regardless, I have a bounty of the
latter and a deficit of the former.
Change-Id: I3375b8d904e0878fd47c1845e3c3b9b6c6359189
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4700
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This was originally intended to work around the issue caused by me
accidentally ending up proxy_set_header'ing the Host header twice (which
nginx *concatenates with slashes*, rather than overwriting!), but seems
sensible regardless to make that whole thing (hopefully) a bit less
brittle
Change-Id: I877fa594b46e88d1ba05e793832beab3d0aaccdd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4697
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Also update log deps so things actually log, using a new :outdated alias
based on antq
Change-Id: I6f87f474bea101fa1b396c519b234eb3aac1c4f1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4696
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Start of a production deployment of the app with nixos+terraform, using
provisioners and null-resources to provision nixos machines a'la espes.
Change-Id: I2ddaed76d0037dadbf9fc9e2ee27e9e67a852228
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4695
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Start setting up agenix with secrets in //users/grfn/secrets for
mugwump, starting with my cloudflare API key which I use for the ddns
from my home apartment
Change-Id: Ida66cb91da3415357a512039d6c23402f0ae9388
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4683
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Let's see what mosh is all about...
Change-Id: I0439130f55dc056370397c3e4ea8039f888703c3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4690
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
The content needs small gutters to improve readability on my iPhone 12.
Change-Id: I751ae5387ad93c95729e642c21c37e481412c00e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4678
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Without this, the hand is properly position only some of the time... it's almost
quantum-like behavior ⚛
Change-Id: I7d5d9ed953f84bd097623e9f8abb1b2140c5bdc3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4666
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
WIP: currently just a simple setup that creates an empty git repo if
it doesn’t exist yet, and writes a commit to it.
A simple database backed by a bare git repository.
WIP: Will speak a simple interactive protocol to query files and
update them atomically.
It could be made atomic on the git repo level, if a lock is taken
between reading the current commit ref and creating the commit.
Change-Id: I1fd30a046ac977063c3e08c36d96e835b35ff07d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3046
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
It's difficult to know whether or not I need this. When I run the following
commands...
```
wpcarro@diogenes> nmap localhost
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
wpcarro@diogenes> nmap wpcarro.dev
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
3389/tcp closed ms-wbt-server
```
...neither localhost nor wpcarro.dev reports 6698 being open even though 6698 is
configured to be open in both:
- diogenes/default.nix
- GCP console
Right now, quasselcore is WAI, so I don't want to invest more time into closing
this loop.
Change-Id: I3d68fd901314aa7d364abf9381dff101411e6d15
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4629
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Rather than loading as the user types for the signup form, start the
page with the full list of attendees already loaded and filter that list
as the user types. There are never going to be more than 50 attendees,
so there's no perf cost here, and it's nice to have the list to scroll
through in the frontend.
Change-Id: Iba69b101856756801183979b9384503520b6701f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4624
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
...so that they can be properly tracked 🤓
Change-Id: I1e33bd5f0e0a114ef441a5f3f61f387b7afd8708
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4611
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
1. This is spamming my Emacs's *Warnings* buffer on init.
2. I recall this being buggy.
3. I'm not doing active Haskell development at the moment.
4. I'd prefer code-intelligence efforts be put into SourceGraph.
Change-Id: I57ba28ec0b2fa3607cd67261a90d134107166c47
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4610
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
I couldn't get services.localtime to behave, but services.tzupdate WAIs. As long
as I have internet, my timezone on this laptop should synchronize with my
location.
Change-Id: Ie2fd0e742e080fb7d6dd1adcc87c9fd22eae032d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4609
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
DRY things up with this mixin.
Change-Id: I5791a50b01902734dff91d391e1aa90a21ce4fbb
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4600
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
I should be doing most of my remote file editing using Emacs and Tramp, but
sometimes a CLI command triggers the EDITOR, which is `nano` by default. I can
control `vim` better than I can control `nano` within a vterm session, so I'm
trying this configuration for now.
Change-Id: I2023beadfe05a957bc5ddd6e6793a891521f301d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4599
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
This also changes the fuzzing infrastructure from proptest to cargo-fuzz,
and this lead to the discovery of two mishandlings of edge-cases:
* when a "path_to_store" is at the end of the input, it tried to access
the input slice out-of-bounds (the `just_store` test covers that now)
* non-ASCII characters lead to an out-of-bounds access in HalfBytesMask
(the `non_ascii` test covers that now)
Change-Id: Icaa2518dcd93e1789a2c0da4cf0fec46016d3bad
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4604
Tested-by: BuildkiteCI
Reviewed-by: zseri <zseri.devel@ytrizja.de>
This crate implements the scanner for finding references to store
paths in uncompressed binary blobs and text files.
It is currently a minimally working prototype and
it is probably a good idea to polish the interface further.
Change-Id: I8406f9d52d254fc3d660ea2b9bc9b7841cc815ec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4596
Tested-by: BuildkiteCI
Reviewed-by: zseri <zseri.devel@ytrizja.de>
This is the result of `evil-indent` going wrong.
Change-Id: I8d68bcb790da03b974d478760bf1224b38d56249
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4594
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Hopefully this installs the KBDs for fzf, which is already installed.
Change-Id: Ice7555c45d38e2e07f9fb16d3ddfc5b971c93cf6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4593
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
DRYing up some of my configuration.
Change-Id: I137692789426efc6a6c6880029e605813674fdbe
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4592
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
I use `python3` REPL as a calculator most often.
Side note: I don't have a clear model of which binaries belong in NixOS
configurations and which belong in my Emacs configuration. Here's a sketch of
what I'm thinking:
- shared (wpcarro's coreutils for fzf, ripgrep, git, etc)
- marcus
- diogenes
- wpcarros-emacs (see footnote)
Footnote: It might be redundant to install wpcarro's coreutils in Emacs on NixOS
environments, but I install wpcarros-emacs in non-NixOS environments, so I
depend on them there.
Change-Id: Ib2b87c8e4e04d167ccbf837e0f85606cbf272828
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4591
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Also sort my dependencies, which is why this diff is noisy.
Change-Id: I998ca354d94d4c6283f9fdf76b06c08b9972ced5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4590
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
I'm accustomed to using vim in a GUI terminal to edit remote files. I'm trying
to ween-off of this dependency in favor of using Emacs.
Change-Id: Ib71d18135a7a9ef6ef61dfce814fffbea79a36f7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4589
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
This is just a Big Old Button
Change-Id: I19f5d15562fe2e0ef26de0cc61d06604e92c9c00
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4587
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This is much easier than the shitty keyboard layout switcher which
caused all kinds of terrifying bugs.
Unfortunately the layout switcher remains additionally because this
doesn't work with Quassel (Qt dropped support for XIM).
Change-Id: I7c58cebf9391216b6e7134d8c283d52cb18332de
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3497
Tested-by: BuildkiteCI
Autosubmit: tazjin <mail@tazj.in>
Reviewed-by: tazjin <mail@tazj.in>
Start working on styles for the app, beginning with a global
stylesheet/reset and styles for the nav.
Change-Id: Ie15e549d7bb4e0116582f4099752aa2503eb9ce7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4583
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Add support for importing the tsv that meetup exports into a list of
upserted attendees, and event-attendee joins.
Change-Id: I5f4ddc9fc63bcc6b0334bc3e1d3cbc4d5b99c21b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4570
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Git recently started warning about this behavior, which it's always had
and I've always liked, and I don't want the warning.
Change-Id: I19ae397770b271924cc975e5f8c50d6351ed29ce
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4569
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Trying to render ligatures (e.g. ->, <>) in the modeline causes Emacs to crash,
so I'm disabling ligatures.
I have a patch like this on my work machine. I'll eventually merge those commits
into depot, but that will have to wait until I'm back in California.
Change-Id: I5e408cbdb717d24c7d5f88b4c822bdf32f370eef
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4568
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
TL;DR:
- vterm-mgt-repopulate-cycle -> vterm-mgt-reconcile-state
- call vterm-mgt-reconcile-state everywhere to ensure state is consistent
- prevent vterm from swalling EXWM KBD (C-S-f)
- support vterm-mgt-select
- prevent type error in cycle-append
- pass t to (vterm t) to ensure it isn't a find-or-create
Change-Id: I0f6d20b8d4b7533c7f56baf796ca3467a85ec770
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4563
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
Looks like symlinkManager is the only code depending on these variables, and the
dependency seems obsolete.
Change-Id: I7abe3c404ec9141f28e3eacd88388fb96ec2de88
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4548
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
TL;DR:
- prefer WPCARRO env-var to BRIEFCASE
- remove repository URLs from Emacs libraries
- prefer tvl-depot-path where possible
- reduce the scope of constants.el
- prune (some not all) stale CI configuration
Change-Id: I21e9130402502ec6fa2fc4b46753c890069be62d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4545
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
A brief eulogy:
Socrates was an Acer laptop that I bought at a used electronics shop in London
for 100 quid.
The laptop is no more...
it is perished...
it is deceased...
it's not pining for the fjords!
it is stone dead...
Change-Id: Ia00e9e8fa05b9faa54c27fe86d880ad31402e2c6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4546
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
the combination of this with zoxide on the shell is epic
Change-Id: I4773012cfe8b19562d6a66971114a25e9844a1f7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4513
Reviewed-by: tazjin <mail@tazj.in>
Autosubmit: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
TL;DR:
- support wpcarro.dev
- support blog.wpcarro.dev
- journaldriver (need to figure out how to install key.json)
Change-Id: I585008b6af74c58bbf831765e800323dabb2272c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4389
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
I should've done this awhile ago. I'm tired of having `nano` open in vterm
instances.
Change-Id: I784e4a7a3e8acba11105052b6c0fe1f6f9ac614b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4512
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
While I'm in Saint Lucia :)
Change-Id: I0e3b13d31e5fff7fa76e69adbd191716fb713325
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4422
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
This allows me to (e.g.) connect to wifi without being root.
Change-Id: Iba2e8516aa7a9d24e52d7afa0de0c4f31e39be16
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4421
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
On the fifth day, there was sound.
Change-Id: Idf0d3f06afa45311c360663da42fb3ed355344bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4420
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Removing some keystrokes from my life at the cost of security. Thoughts,
comments, and concerns are welcome!
Change-Id: I04d877021c4ce15a4d432a6a73e38e60878521aa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4419
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
TL;DR:
- support marcus and diogenes in device.el
- define and consume device-laptop? fn
Change-Id: Ia6e1c2666cbd668466ef6b64a7c274d36b79d699
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4392
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
This'll be publicly hosted, and I don't want search engines knowing
about it.
Change-Id: I801217d11f6656b254698b852e5dfb4d96305a38
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4511
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
The code in //users/wpcarro/tools/monzo_ynab/ynab/client.go was not
valid Go and has been commented out.
Change-Id: Icb4003607f30294dcbf60132eb7722702c7f0d84
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4400
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Add a list of attendees visible only to authenticated users, with stats
about rsvps, events attended, and no-shows.
Change-Id: Ib9a0fe8acf8c616fb725c613494b37121a1ad0e4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4501
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Only authenticated users should be allowed to create events, etc.
Change-Id: I1f560365dbf583cf6cecf4a0798952f323bbd42e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4412
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
If a user already exists with the discord ID we just authenticated, just
return it rather than trying to create another user.
Change-Id: I582c4c8c55f6fb399295b3e691b0bc59e77151f4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4410
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Allow users with the Organizers role to sign in via a Discord Oauth2
handshake, creating a user in the users table and adding the ID of that
user to the session.
Change-Id: I39d9e17433e71b07314b9eabb787fb9214289772
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4409
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
diogenes "passed" CI because the file was named configuration.nix
(vestage from the NixOS default /etc/nixos/configuration). This CL fixes
some issues I encountered after running depot/bin/rebuild-system.
TL;DR:
- rename configuration.nix -> default.nix to trigger CI
- add diogenes to my systems
- add public SSH key
Change-Id: I24197b8936c201267db6f71f00099dce590eac1d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4388
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: tazjin <mail@tazj.in>
Autosubmit: wpcarro <wpcarro@gmail.com>
Any less and building 'awscli' is not possible ...
Change-Id: I99105b767f4afa4cf0d072d57b08963bc12ff994
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4391
Reviewed-by: tazjin <mail@tazj.in>
Autosubmit: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
This opens the door for a whole bunch of neat features.
Change-Id: I15066ca9d8fe38921ebc8c4e995bd282162a4577
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4359
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Right now this is just a sketch for a larger idea of writing a binary called
`create-installer` (see docs).
Change-Id: Ib8e2acfd5d350ccc344329d87983c415f166d02b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4358
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
All I know is that this extends my magit configuration for Gerrit support.
Change-Id: I35c9a264ff25ce6e08b7033e0e022d4047021f05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4357
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
It's part of `evil-collection` now :)
Change-Id: Id69db08e538d10e46dc63c979d232aeb1a639f32
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4356
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tis the season for a dark theme
Change-Id: I3a0354a3eaa4294e51f14e5af52a12be01e89300
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4355
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Something about the end-result of this doesn't feel quite natural to me.
Change-Id: Idaa7a991893d386110bd75f9288b4c3831a59cae
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4353
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Make some of the auto-generated code look a bit more like human-generated code.
Change-Id: I07f543b66275dc8be9db6d8106ef6045541574d3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4352
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Submitted via IRC, instead of the usual Google Groups
due to email issues.
Change-Id: I71a2bdfd10b02370df61bbba4dabc2f45b6c1009
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4384
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
It *appears* that the main trigger for the :title of an org element
being a list instead of a string is if it contains rich text properties
as children, eg links, bold text, etc. This defines a function
that *attempts* to turn all of those into a single string, for use in my
i3status bar for the currently clocked-in task.
Change-Id: Ib655595914e54cd0e01f0fee6d1352c98a9f1436
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4364
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
For modules that are gated behind a mkEnableOption, it's reasonable to
just provide them to all Depot-built nixos systems without requiring
people to explicitly import them. This defines a special module called
`default-imports.nix` which imports these modules (currently just
tvl-cache.nix and automatic-gc.nix, as I'm being rather conservative
adding things here to avoid breaking anyone's system), then provides
that module as one of the `modules` passed at the top-level
nixos/eval-config invocation.
Change-Id: I3be299ab10ae4c451ef11c514edb3c89318a2278
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4345
Tested-by: BuildkiteCI
Autosubmit: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Seems to save some allocations and thus recover some performance
compared to the two separate folds we had before.
Change-Id: Ie3d283103e6a9b8aa702db633d9c988fda1b2903
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4348
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Add a shared nixos module for configuring whitby as a binary nix cache,
and refactor tverskoy to use this module.
This is enabled via an option to pave the way for including it as an
import in all depot-generated nixos configs at some point in the future.
Change-Id: I6dcc0e8eb48b1ac34457666dceebeedd5da6c526
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4344
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: grfn <grfn@gws.fyi>
Angle-bracketed references are a Nix anti-pattern, and thankfully this
repository enforces this as a standard.
TL;DR:
- Drop angle-bracketed references
- Change `briefcase` -> `users.wpcarro`
- Fix any resulting regressions
- Fix //users/wpcarro/tools/simple_vim
- Mark //users/wpcarro/boilerplate/typescript and related projects
as broken
- drop .skip-subtree file, enabling depot CI
Change-Id: I7153cbabafa617bfd6b199370cbec65cb75441f6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4325
Tested-by: BuildkiteCI
Reviewed-by: wpcarro <wpcarro@gmail.com>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: wpcarro <wpcarro@gmail.com>
* move packages and adapt them for the depot structure instead of
briefcase
* drop linear-programming package, it didn't build anyways
Note that at least some of these packages (e.g. prove) are deprecated
upstream, but lets sort that out later.
Change-Id: I7f5a5faa29d57f060b21ac8e1706090866a82000
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4330
Autosubmit: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
For this we create a directory containing a nix-inject.el file using
writeTextFile where we can string interpolate as much as we please and
merge that into a single emacs.d directory with the config *.el files
tracked in the normal tree using symlinkJoin.
Change-Id: I0e39591587a54527214783d4380456d2763da091
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4324
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Get flash working via a functioning cookie-store session middleware, and
display flash messages if present at the top of every page.
Change-Id: If5f267dee3f41ef7954ea82667822c596e1b0474
This version interpolated in by Nix in the lines above instead of
being loaded from Elisp, as that would require starting telega inside
of that build (which is a bit messy because of async elisp).
Change-Id: I775844acb6928db76516f06188b19c713f765ab8
This is supposedly better for battery health, and since the machine is
usually plugged in while in the office it might be a good idea.
Note for myself: `sudo tlp fullcharge` ~30 min before needing to leave
with a fully charged battery.
Change-Id: I3664264403f56c15e055822190f30c3a90c93ead
Replaces the functionality previously implemented here with the now
generalised implementation in passively.el
Change-Id: Ibe7a1b7d512ddcb700bc330cbdf62811399c6cfe
otherwise we'd return the string "nil", which with the substring-ing
that was happening would end up as "Inbox: i" in the status bar
Change-Id: I567a6042b592dd9313bfa22d480c22936494a8c1
For cases where a word raises more questions than are answered by my
existing notes, roots, translations and so on.
Change-Id: Ic9dd79ba4aef6e3c8e7e8e965195b67f7a0c65f3
Adds a set of words that I consider "known" (but that should be in the
most frequent word list anyways). This set can be populated by
invoking `mark-last-russian-word-as-known` after display, and is
automatically persisted.
Right now there's nothing automatically loading it back in, just as
there is nothing loading any of this automatically, that's for the
future.
Change-Id: I51ee4f37114c6b95925e8ad5bdc5dc9b8657bdad
This will make it possible to do operations on that word (i.e. marking
it as known, or opening the full definition page).
Change-Id: Ib77f7d2e4e96d6ab754b311a69f72e2b080657ac
This should keep up passive exposure to words, but needs a subsequent
function for filtering out things that are definitely known.
Since I'm keeping the frequent word list mostly intact the majority of
words are very basic, but it's those last 15-20% I'm interested
in (not completely imported yet).
Change-Id: I7a5684b8dca1fe5301e8b394be2627550a60e3c6
Adds a stupid macro that populates a 'russian-words' hash table in
which merged definitions of words are available.
Change-Id: Ide7825577ba26d63ff564e54601541f39ab5a1a6
If a creature has a weapon wielded, then they now use that weapon to
attack the player *instead of* their natural attacks. This uses a new
`creatureAttackMessage` field on the Item raw for the message to use.
Change-Id: I73614f33dbf88dd4c68081f15710fa27b7b21ba2
Add an `equippedItems` field to the CreatureType raw, which provides a
chance for generating that creature with an item equipped, which goes
into a new `inventory` field on the creature entity itself. Currently
the creature doesn't actually *use* this equipped item, but it's a step.
This commit also adds a broken-dagger equipped 90% of the time to the
"husk" creature.
Change-Id: I6416c0678ba7bc1b002c5ce6119f7dc97dd86437
* Enforce the U+0000 to U+10FFFF range in `count` and throw an error if
the given codepoint exceeds the range (encoding U+0000 won't work of
course, but this is Nix's fault…).
* Check if the produced bytes are well formed and output an error if
not. This indicates that the codepoint can't be encoded as UTF-8, like
U+D800 which is reserved for UTF-16.
Change-Id: I18336e527484580f28cbfe784d51718ee15c5477
Previously we would check the first byte only when trying to figure out
the predicate for the second byte. If the first byte was invalid, we'd
then throw with a helpful error message. However this made
wellFormedByte a very weird function.
At the expense of doing the same check twice, we now check the first
byte, when it is first passed, and always return a boolean.
Change-Id: I32ab6051c844711849e5b4a115e2511b53682baa
This implementation is still a bit rough as it doesn't check if the
produced string is valid UTF-8 which may happen if an invalid Unicode
codepoint is passed.
Change-Id: Ibaa91dafa8937142ef704a175efe967b62e3ee7b
This is not really used anywhere and kind of useless. A better
decodeSafe would never return null and instead make use of replacement
characters to represent invalid bytes in the input.
Change-Id: Ib4111529bf0e472dbfa720a5d0b939c2d2511de5
This function is also generally useful for readTree consumers that
have the concept of subtargets.
Change-Id: Ic7fc03380dec6953fb288763a28e50ab3624d233
builtins.genericClosure is a quite powerful (and undocumented) Nix
primop: It repeatedly applies a function to values it produces and
collects them into a list. Additionally individual results can be
identified via a key attribute.
Since genericClosure only ever creates a single list value internally,
we can eliminate a huge performance bottleneck when building a list in a
recursive algorithm: list concatenation. Because Nix needs to copy the
entire chunk of memory used internally to represent the list, building
big lists one element at a time grinds Nix to a halt.
After rewriting decode using genericClosure decoding the LaTeX source
of my 20 page term paper now takes 2s instead of 14min.
Change-Id: I33847e4e7dd95d7f4d78ac83eb0d74a9867bfe80
Creatures are going to have an inventory too now in addition to
characters, so all the data types and lenses and stuff that define
inventory need to be broken out into a separate module so the Creature
entity can use them.
Change-Id: I83f1c70d316afaaf2e75901f9dc28f79fd2cd31f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3901
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Because floating points, it's possible that a creature has reached their
destination even if the *progress* to that destination is at 0 - if that
happens, they should pick a new destination regardless. This fixes the
issue where creatures would occasionally get "stuck" and never move
after wandering around for a bit.
Change-Id: I01a11ce4bd448c25a818c886825e4fad56dffe03
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3885
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
... rather than launching it manually in a shell when I need it, which
is more often now that I have a large screen.
Change-Id: Ia526af98e513d29e70aeb093442465dce256c333
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3874
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
some... *ahem*... very insistent people have been asking for this,
despite the fact that it doesn't allow for diagonal movement.
Change-Id: Ic58e2435b34e27e3ed399c7b8f3bcbc1f634f6b3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3870
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Add a new "husk" creature raw, limited to only being generated on levels
>= 1, including support for actually doing that limiting.
These guys are gonna get daggers next!
Change-Id: Ic4b58dc7ee36b50ced60fec6912cd1b46269d55c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3868
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
The plan is to use this as a test bed for generating creatures wielding
items, but for know it just shows up on the ground in places.
Change-Id: I8b292606f425cd41bff9e52727f1094886777102
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3867
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Start documenting the fields of the raw type YAML files and what they
mean, to make it easier to write new raw types.
Change-Id: I9672b757e89f1cc665d7e90078d83cfd87173d7f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3865
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
mount the host key in as a single-file volume, so the server can
actually read it.
Change-Id: I5fb58536717c91480d1f4610b6fb3258a36169e0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3864
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
The actual function we want for the format we're using is
decode_secret_key, not decode_openssh, apparently - covered this with a
toneest to make sure.
Change-Id: I659226169f213b8464b96aec6b94bf13fd80aac8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3863
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
A new section for my awesome website.
Migrates an old blogpost from the github repository.
Change-Id: I5fd0c2b2679a1367015fa098e3e787bbc0cdd973
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3293
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
A new section for my awesome website.
Change-Id: I6c624aa0bfaf82aff943431da7499bec1d842c67
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3291
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
… and clean up the import list a little.
Change-Id: I7a116e9bbf01731267795b5327fecf98f0c7c3e4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3286
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
It’s a small tool that I’ve used before but not anymore, but since it
has a few helpers for dealing with cdb stuff, I’m gonna keep it around
for now I guess.
Change-Id: I83c62fa2194113d021414708b0906350b3f2a222
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3283
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
The rendering of the notes/ template was done in a very roundabout way
through the routing table before. Now it’s constructed directly.
Change-Id: Iaa6157cc3f9a7e5e0ad81ab843efa988995666b2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3282
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
We can easily construct netstrings from nix strings, which is super
helpful to inject proper structured data into execline scripts.
Change-Id: Ie8bffed285896223db83652eaea868ece43592b9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3265
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
A little shell script to atomically write stdout to a file.
Change-Id: Icca58909c9ad3f92d69af2f5e20c08d69878a77c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3264
Tested-by: BuildkiteCI
Reviewed-by: Profpatsch <mail@profpatsch.de>
It keeps gc'ing things I'm using more than I would like. Some sort of
meme potential about my storage use on the laptop here.
Change-Id: I0f8078a92effaf32bcadc3355507469babbc2eb8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3826
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
%l includes two pairs square brackets around the text, which doesn't
work if we want a description - %L only includes the literal link
location, so we can surround it in only one pair of square brackets
Change-Id: I3436f631f0e33336214828e0eb58d5333418b26f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3820
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Rather than randomly generating a new host key every time we run the
server, load the host's secret key from a file on disk at startup, so
that clients don't have to disable host key verification to connect
every time we restart.
Change-Id: I4d283bc919f4825789f686a98c174a71929087a6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3819
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Gitignore:
- *.save, which I use for save-games I want to use as test case
reproductions
- .tasty-rerun-log, which tasty-rerun uses to save which tests failed on
the last run
- cabal.project.local-*, since I've got a file on my machine called
cabal.project.local~0 so apparently that's a thing now
Change-Id: I07c391fa25a84e96efca6771997f280ff12826b5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3818
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Rerunning only failed tests is nice! To use this, run `cabal new-run
test -- --rerun`
Change-Id: I9dc4d69749c3e3d5ba8d1661a2fdf73e49cd8ad5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3816
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
This was previously hardcoded to tazj.in, which is not going to work
of course.
Instead it now takes the blog config which has a new baseUrl
parameter. For ease of use, the configs of my and the TVL blog have
been moved into a location that is accessible in the tree for reuse.
Change-Id: I94e71aaa7859db4380eb7013740a17f6b6a02620
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3777
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Dunst as of 1.7.0 apparently no longer supports keyboard shortcuts (so
much for semantic versioning) in favor of having them be bound in the
window manager to invocations of `dunstctl`.
Change-Id: Ic3f10a29061c19ea0002e0f6d596baeafa58d968
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3815
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
txtWrap takes up half the available width in the viewport, causing
the input for prompts to display way too far to the right of the actual
prompt. I'm not aware of any actual mutiline prompts, so using txt here
makes way more sense.
Change-Id: I7f62066f1b07b5d6ba2c7ffed77c87ae33b1dfa5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3814
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Add a nixos module for running the xanthous server in a docker
container, and install it on mugwump including a prometheus scrape
config.
Change-Id: Ifeb315845b7eef2ee33af98fa3f71acdd3d9fe6b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3812
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Add a prometheus exporter and some simple prometheus metrics, so that I
can look at dashboards and get alerts for things like lots of
connections
Change-Id: Ic1e0568200299dc852b74da647a6354267ee7576
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3811
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This appears to work pretty nicely!
Change-Id: Icf52f58225ee2837b30ba6187ae3ba3c539de9df
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3810
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Don't write to my disk, please, random internet people.
Change-Id: I1d199fc3675f6ec7630f598bbc33dc7ef7e02e68
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3809
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Add a command-line parameter to disable the Save command, so people
don't save and fill up my disk when I'm running this on the internet.
Change-Id: I2408e60de2d99764ac53c21c3ea784282576d400
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3808
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Accept password authentication in addition to public key authentication,
but ignore the actual password, so that clients without ssh keys
configured (or configured to send no ssh keys) can authenticate.
Change-Id: I86130b9725d1928ac45b5db55f18c09687ee0fd5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3807
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Add the start of an ssh-compatible server application for playing
Xanthous over ssh. The idea here is that the user can ssh with whatever
username they like (defaulting obviously to their login username) and
then that gets passed as the --name flag to xanthous as they play.
Change-Id: I39eec288ac8e22a165e859479888d78158a58818
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3806
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
numAliveNeighbors was doing bounds checks too aggressively, resulting in
always returning 8 for points on the edge, meaning walls weren't getting
properly created for those points, making edges of the map open to walk
through.
Change-Id: Iada6be46ce7cc77ce99a320b7310008898b89273
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3805
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Don't generate tutorial messages on levels other than the first.
Change-Id: I7681377461b92f5d5015931b0088bef9d358d2e4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3804
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Using a signed Int here is a little silly, since we can never have
negative levels.
Change-Id: Ibe03be5014226e07dfa6f78d8360301bc1b7c9b1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3803
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
When saving, default to the save file that was loaded for the game if
any. To support this, this also makes text prompts support a default,
which will be used if no value is input.
Change-Id: I72a826499d6e987b939e3465a2d29167e53416be
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3801
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This was previously all inside of my personal homepage configuration,
but that's not really where it belongs.
This moves the blog post -> feed entry logic to //web/blog and moves
some other minor logic (like entry order) into the atom feed
implementation itself.
Change-Id: Idde0241c48e979580de73f2b9afd04e6ca7f4c9a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3770
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Required for actually using this generically for the TVL blog.
Change-Id: I92d8d10341f9ab4f92c90f7976be261b3255a0f0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3768
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This one is basically taken from some gist linked in the official
dunst readme and makes nice little boxes.
Change-Id: I5bee8488f333dcc2f7040b741729065ef8617ae0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3767
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Carry over everything except the character's position when going up
stairs, so that eg the character doesn't lose everything they picked up
and instantly heal to full when going up a level.
Change-Id: I08513578a72f2410a363bbadbb273d95826a3f1b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3766
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Implement a first pass at a "fire" command, which allows throwing rocks,
the max distance and the damage of which is based on the weight of the
item and the strength of the player.
Currently the actual numbers here likely need some tweaking, as the
rocks are easily throwable at good distances but don't really deal any
damage.
Change-Id: Ic6ad0599444af44d8438b834237a1997b67f220f
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3764
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
That machine doesn't exist anymore. Some of them are partially
retained for use on tverskoy instead, but I've mostly nuked it.
Change-Id: Ia358b46353d408798c29c4c90ec06b116b322b5d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3761
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This will also be used for the TVL blog, with status updates of
projects like Tvix.
Note that while this commit evaluates, there are still some things
specific to my blog in this code which I'll untangle in a future commit.
Change-Id: If59431161b165d7249cbb856073a4cae84a1bfbf
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3732
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
The C code from which this is translated uses sentinel values for
various things, this commit replaces them with standard Rust types
instead (amongst a bunch of other small improvements).
Change-Id: I892811a7afebb5a0f3b825824fc493ab0b399e44
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3735
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Since this code is essentially a fairly plain translation from C, it
is a bit confusing to deal with the original untyped code. This is an
attempt to try and clean some of it up.
Change-Id: Icd21f531932e1a811c0d6dbf2e9acba61ca9c45d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3734
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
I intend to use this for updates on TVL projects, which will end up on
the homepage, which is outside of //users.
Change-Id: I03542d1bcef3d9fc4599294655caab5ed22ba5d9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3728
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
The default gcc version for pkgsCross.avr.buildPackages is 10.x, which
seems to be able to build the layout derivation just fine.
Change-Id: Ib7790419f38121ea2b1a09c790ef3a04afc0f9f8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3712
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
nixpkgs-crate-holes can build a markdown report detailing all vulnerable
crates pinned in cargoDeps vendors in nixpkgs according to RustSec's
advisory db. This report is intended to be pasted into a GitHub issue.
The report is produced by a derivation and can be obtained like this:
nix-build -A users.sterni.nixpkgs-crate-holes.full \
--argstr nixpkgsPath /path/to/nixpkgs
Example output: https://gist.github.com/sternenseemann/27509eece93d6eff35cd4b8ce75423b5
Additionally, you can obtain a more verbose report for a single
attribute of nixpkgs, in HTML format since we just reuse the command
line output of cargo-audit and convert it to HTML using ansi2html:
nix-build -A users.sterni.nixpkgs-crate-holes.single \
--argstr nixpkgsPath /path/to/nixpkgs --argstr attr ripgrep
Change-Id: Ic1c029ab67770fc41ba521b2acb798628357f9b2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3715
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
... the amount of times I've not had this and nix-shell'd it is ridiculous.
Change-Id: I8ac3a7a2915e68d235f8349373b2575e6ebe1cb5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3710
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
The previous impl of this was formatting the pre-save contents of the
buffer, effectively preventing saving any changes (oops).
Change-Id: I17d4b8ba0943964d700f7dca81af4f46b149c0b8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3644
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
This is really just not worth the performance hit
Change-Id: I6f603aa154c562da2803bd8f73b1135faad243be
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3642
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
This doesn't work right now, and I'm not currently writing any idris
Change-Id: I7c090ad9f05c5d24f4f80fdd444e8995629aaba4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3641
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
It's worth trying out with a small initial list of feeds that I
normally read anyways.
Change-Id: I196bf522c159e9630624e60dd1b6419ba987bcd9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3635
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
These are then loosely referenced by corresponding words in the big
word list.
I think what I'll be aiming for is a bunch of interesting lookup
functions (give me all words I know with this root etc.)
Change-Id: I664976c3c1521334ea58c7ba943f5c18d5513bf9
There's no longer an Egyptian fireball in the sky, so I can go back to
normal.
Change-Id: I6fdcd12f3d3e62c367115f3712cc0fd36eeff78d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3568
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
For now mblog only contains the mnote-html executable which takes a mime
message from a maildir and prints the equivalent HTML fragment to
stdout. It is intended to work with the mblaze(7) utilities,
i. e. mnote-html resolves all `object` tags to proper `img` inclusions
with the correct filename, so mshow(1)'s -x version can supply the
needed image files. A note created using Apple's Notes app (tested with
the iOS version) can be converted in a viewable HTML file like this:
$ mnote-html path/to/msg > fragment.html
$ mshow -x path/to/msg
$ cat <(echo "<!DOCTYPE html>") fragment.html > document.html
$ xdg-open document.html
Note that only the limited feature set of Apple Notes when using the
IMAP backend is supported. The iCloud-based one has more (quite neat)
features, but its notes can only accessed via an internal API as far as
I know.
This CLI is a bit impractical due to the big startup overhead of loading
the lisp image. mblog should be become a fully fletched static site
generator in the future, but this is a good starting point and providing
the mnote-html tool is certainly useful.
Change-Id: Iee6d1558e939b932da1e70ca2d2ae75638d855df
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3271
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This is mostly to yet another silly idea which turns out to be
possible. This may be actually useful should I implement more
sophisticated format specifiers like "%xd" or "%f".
Change-Id: Ia56cd6f5793a09fe5e19c91a8e8f9098f3244d57
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3537
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
hpack is a bit dumb when generating the list of modules for a cabal
file's component if multiple of them live in the same directory.
Specifically it seems to assume that all modules in the source-dirs
of a particular component are also necessary for its compilation.
This is quite bad in the case of xanthous since both library and
executable have source-dirs: src, so all modules will be compiled
twice: Once for the library and then again for the executable
despite it depending on the library (actually 4 times in total
since we need to build a unprofiled and profiled object for each
module…).
To fix this we just move Main.hs into its own directory and change
the executable's source-dirs, so hpack doesn't get confused anymore.
Since all components now have their own source-dirs, unnecessary
redundant compilation should be down to 0. The diff of the cabal
file shows quite nicely how many module recompilation we've gotten
rid of.
Change-Id: I2df4fab9b0299b3a2b5d3005508c79b2d9796039
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3533
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
Since //web/bubblegum depends on nint, we need to move it to a non user
directory to conform with the policy established via cl/3434.
Note that this likely doesn't mean greater stability (which isn't
really implied in depot anyways), since I still would like to use a more
elaborate calling convention to allow for additional useful features.
Change-Id: I616f905d8df13e3363674aab69a797b0d39fdd79
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3506
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This allows me to add stuff without doing a commit for every feed. I can
always import them in bunches if I want to later.
Change-Id: I080f40b3627940a1f68cf13598c102953f4994b1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3505
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
`config.home.homeDirectory` is never set, meaning that when this builds
in CI it just uses the $HOME of the buildkite agent that's running,
causing it to almost always rebuild on new changes - I'm never going to
have a username on a system other than `grfn`, so this is fine to just
hardcode.
Change-Id: I920a0c546f4c06d0429534d116465e8f732218e7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3495
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
I have some secret stuff here (not security-secret, just secret that I'm
installing it in my system) so this has to be conditionally included
Change-Id: Idb12e5bbab507ad3dc5eb610199fd384789c0e20
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3491
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
The backported fix is no longer required and we can just apply the
patch in the overlay, this makes everything a little easier.
Change-Id: I654a1bb002eef5c578b8e576e133a159bde3f850
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3483
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This lets us benefit from the recent OpenSSL security-related
update [1]. Since nixos-unstable is still stuck, we temporarily
use nixos-unstable-small as our unstable channel.
Fixes necessary:
* //users/sterni/nix/char:
Someone has decided to drop writers.writeC upstream [2],
so we reimplement it ad-hoc using runCommandCC
[1]: https://www.openssl.org/news/secadv/20210824.txt
[2]: 982f46985e
Change-Id: Id84756e2e370296b7a27e1a3f1744f58f8fe3c47
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3463
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Unfortunately this doesn't work with Gerrit yet, but it's fine for SSH auth.
Change-Id: Idcfebb117ca39e47ef5595f5bb64ea31dbef3af7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3442
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
I no longer use this, I just use the rebuild-system that all nixos
systems get now.
Change-Id: I2272ff13b21b3194c06b51dbc340c19b8bb336a9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3430
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
It's now more like my personal homepage depends on TVL assets, not the
other way around.
Change-Id: Ifb9d61aa8ec2cab549e25de3a3dfbbd08f3d336c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3435
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Prevent flycheck-next-error and flycheck-prev-error from being repeated
by evil, since they're movement commands rather than editing commands.
This lets me spam `]e.` if I have to do the same thing to all the errors
in a buffer, for example.
Change-Id: I5993f6d19b71b63e5f4be1f3ce9e0cfd0357cc6e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3425
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This was missing a path segment, plus calling it rust-analyzer makes it
clearer what's going on
Change-Id: I8f71fe1b438d72f743472ab10ec939f686ad0da1
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3424
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Adds ECL as a second supported implementation, specifically a statically
linked ECL. This is interesting because we can create statically linked
binaries, but has a few drawbacks which doesn't make it generally
useful:
* Loading things is very slow: The statically linked ECL only has byte
compilation available, so when we do load things or use the REPL it is
significantly worse than with e. g. SBCL.
* We can't load shared objects via the FFI since ECL's dffi is not
available when linked statically. This means that as it stands, we
can't build a statically linked //web/panettone for example.
Since ECL is quite slow anyways, I think these drawbacks are worth it
since the biggest reason for using ECL would be to get a statically
linked binary. If we change our minds, it shouldn't be too hard to
provide ecl-static and ecl-dynamic as separate implementations.
ECL is LGPL and some libraries it uses as part of its runtime are as
well. I've outlined in the ecl-static overlay why this should be of no
concern in the context of depot even though we are statically linking.
Currently everything is building except projects that are using cffi to
load shared libaries which have gotten an appropriate
`badImplementations` entry. To get the rest building the following
changes were made:
* Anywhere a dependency on UIOP is expressed as `bundled "uiop"` we now
use `bundled "asdf"` for all implementations except SBCL. From my
testing, SBCL seems to be the only implementation to support using
`(require 'uiop)` to only load the UIOP package. Where both a
dependency on ASDF and UIOP exists, we just delete the UIOP one.
`(require 'asdf)` always causes UIOP to be available.
* Where appropriate only conditionally compile SBCL-specific code and
if any build the corresponding files for ECL.
* //lisp/klatre: Use the standard condition parse-error for all
implementations except SBCL in try-parse-integer.
* //3p/lisp/ironclad: disable SBCL assembly optimization hack for all
other platforms as it may interfere with compilation.
* //3p/lisp/trivial-mimes: prevent call to asdf function by substituting
it out of the source since it always errors out in ECL and we hardcode
the correct path elsewhere anyways.
As it stands ECL still suffers from a very weird problem which happens
when compiling postmodern and moptilities:
https://gitlab.com/embeddable-common-lisp/ecl/-/issues/651
Change-Id: I0285924f92ac154126b4c42145073c3fb33702ed
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3297
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: eta <tvl@eta.st>
This has been folded into dash itself.
Change-Id: I19e7a9fbc4d6206e3624b7c226de2225153689c6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3407
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
Lets trust that the Emacs overlay is using the right packages from the
right sources by default. I'm not overly attached to any specific
versions.
Change-Id: Id53a4587f680965f13b5cd329a10f0384ff97c13
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3406
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
The channel has caught up with this fix.
Change-Id: I86287a6808e6936e50e5d43cbafc74b9362e0bd8
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3404
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Wanted to port my emacs config to depot, but missing a dependency from
the channel. Adjustments:
* Downgrade grfn's Kernel to 5.10: The ck1 patch is not yet available
for 5.13 unfortunately and the 5.12 set has been removed upstream.
Change-Id: Ifaf315427bda2af590549ca0abec02a79f19a3ec
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3375
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: grfn <grfn@gws.fyi>
Someone asked for this, so here it is.
Change-Id: I00c52deb8c3f4e8f786cf4763b39d862ad041f6d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3371
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Telega keeps getting loaded with old sources, the origin of which I
can not figure out, and which are not compatible with my Emacs
anymore. This means that opening Telega essentially breaks the active
Emacs until the telega process is killed.
Until I have time to properly sit down and debug where Nix decides to
get an old version of telega from (building the package directly from
a Nix REPL yields the expected one), I'll disable it to avoid
accidentally breaking my Emacs via muscle-memory.
Change-Id: I937ac3a2b208c08fa0ef0b6e3e201526baa3a522
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3367
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
This stops it from interfering with command line invocations of things
like cargo test
Change-Id: Icc24a27ac5e17bb88ed539c13fc33204ef55ce82
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3288
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
The latest Emacs versions removed some (private) functions that telega
depends on, and this is fixed in HEAD of telega.el.
However, without these fixes, the unstable version of telega doesn't
build because the patch Nix tries to apply doesn't match the source
anymore.
The patch itself doesn't seem to do anything relevant for me.
Change-Id: Ib9a042c636cb438b2b15d231a07afd5c02be72ee
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3294
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
I used //tools/depot-nixpkgs-update for this - thanks again, sterni!
Included fixes:
* temporary workaround for building notmuch python package, fixed in
upstream already (but channel hasn't advanced there)
* Disable fprintd in grfn.system.yeren, as the fprintd-tod package
currently has a version mismatch in nixpkgs
Co-authored-by: Griffin Smith <grfn@gws.fyi>
Change-Id: If6d71b08ace9db57daadfe3b69b9cd4aec6a5a4e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3274
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
... for the rare cases where I am watching a movie on this laptop.
Change-Id: I9f6a5a4079b32a67d46e744c024c2accf09b3d6d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3273
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
This is required for launching desktop applications from XDG shortcuts
via counsel.
Change-Id: I147fb0d6568e359c23655230b2a56214715827f6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3267
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
The old one's displaying as an emoji, upsettingly
Change-Id: I50980e4b9f2a58463e749a8adcc32f0f9ca1d154
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3261
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Didn't bother to update the stable channel as it is unused currently.
Changes required:
* tazjin/frog, grfn/modules/obs:
Remove obs-v4l2sink as it has been integrated into upstream OBS and
the package removed from nixpkgs subsequently (at least according to
the `builtins.throw`-message).
Change-Id: I4335ed060eef2c4ff8ac55a68d894bcc3d8ef4a3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3243
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <mail@tazj.in>
Telegram adds this itself, which means the file is different from what
home-manager knows about, which means running home-manager switch
breaks unless this is here.
Change-Id: Iad507bf63365a630b7eef349228b633f5b83d78b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3251
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
I don't know why this is causing issues, I really don't. But I get
agenda items without having to reload this file now.
Change-Id: I38fd4f7942430a07231cadbc0320e1ba786616e6
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3249
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Yes, this is a fix.
Change-Id: Ie80dc0f60c6343388388fba3327816d8a1b0fbe0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3244
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
Very worried about this, Lenovo has a knack for bricking devices with
firmware updates ...
Change-Id: Idc111fe9d4bd7edf1e6c633040cf35e82f858724
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3224
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
These end up being things like "hey, you used a proc macro" which isn't
useful to me, and clogs up the rest of my error navigation.
Change-Id: I9ccfddcce9683184f2479ae1aa30a8414f7e7c51
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3242
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Previously this'd display `5 m m³`, because it'd show the underlying
value then add the unit suffix on at the end
Change-Id: Idd240ddfebc212460f9fb529eff72732a5dafe2a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3241
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
If org-tracker-headlines-from-search is called non-interactively, it
only *returns* the org headlines as a string, rather than inputting them
at point.
Change-Id: Ia43d516f35a11383b206a57f345a6aeedfe86831
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3230
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Previously, we were using `smallestNotIn` for selecting new characters
for menu items with duplicate chatacters - this uses the 'Bounded'
instance for the type, which for Char meant the first character we would
always select was \NUL - making it look like the menu item had no
character, and making it impossible to actually select the menu item.
This introduces an AlphaChar newtype, which is a wrapper around Char
whose Bounded and Enum instances only use alphabetic characters (a-ZA-Z)
and uses that for menu characters instead.
Change-Id: If34ed9e9ce84f2bcb1cb87432cc6273f40b69f72
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3229
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
When describing items in the inventory, both in detail and when
producing menus from those items, describe not just the item itself but
also *where* in the inventory the item is (either in the backpack, or
wielded in either or both of the hands). This uses a new
InventoryPosition datatype, and a method to get a list of items in the
inventory associated with their inventory position. When *removing*
items from the inventory (to wield, drop, or eat them), we want to make
sure we remove from the right position, so this also introduces
a `removeItemAtPosition` method to make that happen correctly.
Finally, some of the tests for this stuff was getting really slow - I
narrowed this down to runaway arbitrary generation for message
Templates, so I've tweaked the Arbitrary instance for that type to
generate smaller values.
Change-Id: I24e9948adae24b0ca9bf13955602108ca9079dcc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3228
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Add a new DescribeInventory command, bound to I, to prompt for an item
in the inventory (anywhere in the inventory, including wielded) and
display a (new) panel describing it in detail. This description includes
the description, the long description, and the item's physical
properties (volume, density, and weight).
Change-Id: Idc1a05ab16b4514728d42aa6b520f93bea807c07
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3227
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Generate random volumes and densities for items based on the ranges for
those two quantities in the raw when building instances of items.
Since this is the first time creating an item is impure, this also lifts
entity generation into a (random) monadic context
Change-Id: I2de4880e8144f7ff9e1304eb32806ed1d7affa18
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3226
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Allow the itemType raw to have density and volume fields, both of which
represent *intervals* of both density and volume (because both can
hypothetically vary a bit). The idea here is that when we're making
an *instance* of one of these items, we pick a random value in the
range.
Lots of stuff in this commit is datatype and typeclass instances to
support things like intervals being fields on datatypes that get
serialized to saved games - including a manual definition of Ord for
Item since Ord isn't well-defined for intervals
Change-Id: Ia088f2f75cdce9d00560297e5c269e3310b85bc3
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3225
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2000 ticks after the character damages their fists by hitting something,
the character now develops calluses on their fists (scaled by *how*
damaged they've become) that reduce the chance of them receiving
additional damage from hitting things - up to a max of 5, which
prevents *all* damage from fistfighting.
This is all tracked in a new "Knuckles" struct in a new "Body" struct on
the character datatype, which manages stepping itself forward as part of
the Brain impl on the character.
Change-Id: Ica269f16fb340fb25900d2c77fbad32f10c00be2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3222
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Add a command that automatically rests (essentially just stepping the
game forwards) until the character's hitpoints are back to full.
Currently due to the time it takes for the character to heal this takes
a bit too long - my thought there is to make the per-step delay for
autocommands different depending on the specific autocommand.
Change-Id: I40378c29d3d9d19e9787af1f015bde65fd08868c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3221
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
Allow configuring the natural attacks (eg, part of their body rather
than an item) of a creature. Each attack has a description and a damage
associated with it.
Change-Id: I69698a8ac4ee2da91e4c88e419593627519522a5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3220
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI