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