Commit graph

953 commits

Author SHA1 Message Date
Griffin Smith
0d1980f2d6 feat(xanthous/server): Load host secret key from disk
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>
2021-11-08 17:01:14 +00:00
Griffin Smith
7d1ebe996c chore(gs/xanthous): Gitignore more state files
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
2021-11-08 15:29:13 +00:00
Griffin Smith
5b4c4f0701 feat(gs/xanthous): Enable tasty-rerun
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>
2021-11-08 15:29:05 +00:00
Vincent Ambo
875ef0a605 fix(web/blog): make base URL configurable for atom feeds
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>
2021-11-08 10:39:04 +00:00
Griffin Smith
bb980158a7 fix(gs/home): Move dunst shortcuts into i3 config
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
2021-11-08 03:31:51 +00:00
Griffin Smith
56718d14b1 fix(gs/xanthous): Don't take up half-width for prompts
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
2021-11-08 03:31:51 +00:00
Griffin Smith
63524745c9 feat(gws.fyi): Mention xanthous ssh server
Change-Id: Icda55f85bcbb8e7743834b847dd595d31a138eb9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3813
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-11-07 23:02:23 +00:00
Griffin Smith
e9c3d2f6d9 feat(gs/mugwump): Run xanthous server
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
2021-11-07 23:02:23 +00:00
Griffin Smith
5327d238e3 feat(xanthous/server): Add simple prometheus metrics
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
2021-11-07 21:18:39 +00:00
Griffin Smith
77f0d62a2c feat(xanthous/server): Add derivation for docker image
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
2021-11-07 21:05:39 +00:00
Griffin Smith
f9f5b0b199 feat(xanthous/server): Run with --disable-saving
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
2021-11-07 21:05:39 +00:00
Griffin Smith
9577d97a8f feat(gs/xanthous): Allow disabling saving
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
2021-11-07 21:05:39 +00:00
Griffin Smith
e3724448a2 fix(xanthous/server): Accept password authentication
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>
2021-11-07 21:05:39 +00:00
Griffin Smith
94be8ad755 feat(gs/xanthous): Add SSH server application
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>
2021-11-07 21:05:39 +00:00
Griffin Smith
b68414c66b fix(gs/xanthous): Fix numAliveNeighbors{,M} on the edge
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
2021-11-06 17:34:46 +00:00
Griffin Smith
eeafd0fa0e fix(gs/xanthous): Don't gen dupe tutorial messages
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
2021-11-06 17:34:46 +00:00
Griffin Smith
580e37ff64 refactor(gs/xanthous): Use a Word for the level number
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
2021-11-06 17:34:46 +00:00
Griffin Smith
e0bec49b39 fix(gs/xanthous): Update hie.yaml for new app/ directory
Change-Id: I87c82f22313285085ac53485613b7d9f91b52ed2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3802
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-11-06 15:52:02 +00:00
Griffin Smith
ff6c008d78 feat(gs/xanthous): Default to the current save file
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
2021-11-06 15:52:02 +00:00
Vincent Ambo
f360bbdcf0 refactor(web/blog): Move atom feed creation logic to //web/blog
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>
2021-11-04 15:57:56 +00:00
Vincent Ambo
bbf92dcdea refactor(web/blog): Configurable blog name and footer
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>
2021-11-03 15:43:57 +00:00
Vincent Ambo
e99d8510d7 feat(tazjin/tverskoy): Add dunst configuration
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
2021-11-02 12:18:12 +00:00
Griffin Smith
18315b2fb6 fix(gs/xanthous): Preserve character state when going up stairs
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
2021-10-30 17:16:21 +00:00
Griffin Smith
ddfea5aca0 fix(gs/emacs): Fix directory for xanthous capture template
Change-Id: Ie06086f919656a3ad3673934a1f1c2d266622621
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3765
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-10-30 17:16:21 +00:00
Griffin Smith
61802fe106 feat(gs/xanthous): Allow throwing rocks
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
2021-10-30 17:16:21 +00:00
Griffin Smith
352c75630d feat(gs/xanthous): Send message when resting
Change-Id: Ib1e7ae6dfcbc2d2e86a28b401e67cd5dd22d6281
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3763
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2021-10-30 17:16:21 +00:00
Vincent Ambo
aec85fd6b5 chore(tazjin/emacs): Remove screen layout configs for Vauxhall
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>
2021-10-27 06:52:17 +00:00
Vincent Ambo
08d46ad293 chore(web/blog): Move out of //users/tazjin
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>
2021-10-22 09:56:31 +00:00
Vincent Ambo
33e71ba97f feat(tazjin/rlox): Implement else clauses
Change-Id: I0bc2333c0b4dd3e2e584a90d0d15b28c48130f03
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3740
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-22 09:42:38 +00:00
Vincent Ambo
670662a360 feat(tazjin/rlox): Implement simple conditionals
... basically just optional blocks (no else).

Change-Id: If091c6b8fdeb6c13a5f3dd284d0a9a87f9f4228d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3739
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-22 09:42:38 +00:00
Vincent Ambo
d57e43e161 refactor(tazjin/rlox): Return index after adding operations
Change-Id: I100eb9b55ace37e5c7c878d3c224b567ee8d1e36
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3738
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-22 09:42:38 +00:00
Griffin Smith
263260bbdf feat(gws.fyi): Host ssh key
Change-Id: I387ead1daa65a3b39c3771f95f5f6734aebabea9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3737
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-20 14:07:34 +00:00
Griffin Smith
d70cb4c641 feat(gs/home): Upgrade discord to 0.0.16
Change-Id: I2300fc7345dcd644b954c1232bc8a5f0a1858d00
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3736
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2021-10-20 14:07:24 +00:00
Vincent Ambo
bdde287d22 refactor(tazjin/rlox): Remove use of sentinel values
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>
2021-10-20 12:50:36 +00:00
Vincent Ambo
050a2b473c refactor(tazjin/rlox): Introduce newtypes for various indices
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>
2021-10-20 12:50:36 +00:00
Vincent Ambo
e92a951f6c fix(tazjin/emacs): Fix renamed cargo mode map
Change-Id: I12a893d94dd67106c7cee875fbef432d693b41b9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3733
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-19 14:21:16 +00:00
Vincent Ambo
c318f42c11 feat(tazjin/rlox): Support local variables
WIP

Change-Id: I78fbc885faaac165c380cbd9aa98b4b64a9b8274
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3685
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-19 12:58:43 +00:00
Vincent Ambo
ad7e591c80 feat(tazjin/rlox): Global variable assignment
Needed for example code compatibility.

Change-Id: Id83210eaaad7dcfef5aa238dd3a7ec159f6935e9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3684
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-19 12:58:43 +00:00
Vincent Ambo
6a38600ce8 chore(tazjin/rlox): Add some old code example files
Change-Id: I484b11069286ea2277e9e158fa5c3bd34f84c89e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3464
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-19 12:58:43 +00:00
Vincent Ambo
edd8680e87 chore(nix/renderMarkdown): Move out of //users/tazjin
Change-Id: Ia5e873420b57436abead8e02cef3e5b7149de123
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3731
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-19 11:47:38 +00:00
Vincent Ambo
8301825124 chore(web/atom-feed): Move feed generator out of //users/tazjin
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>
2021-10-16 08:47:16 +00:00
Vincent Ambo
67ec19e854 feat(3p/dfmt): Add derivation for the D code formatter
Change-Id: I4e06676f45df334db4fbc4f1657a6f16828547dc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3727
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-15 11:51:19 +00:00
sterni
465c9e7257 refactor(grfn/keyboard): use pkgsCross.avr's default gcc
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>
2021-10-14 21:23:37 +00:00
sterni
3a2fd6e275 feat(nixpkgs-crate-holes): report vulnerable crates in cargoDeps
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>
2021-10-12 14:15:28 +00:00
Vincent Ambo
0a80313fd3 feat(tazjin): Install D related tooling
Change-Id: I4c27b7a3b89ffd3a84313b70af3dfda2b2f6fa98
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3714
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-10-12 08:57:18 +00:00
sterni
c01b9a2935 feat(users/sterni/emacs): enable jq-mode
Change-Id: I943343af92665897e2ebc556f3984a2f8ede9a23
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3723
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2021-10-11 13:25:56 +00:00
Vincent Ambo
1f1556dea9 feat(tazjin/tverskoy): Install unzip
... 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
2021-10-10 11:21:23 +00:00
Vincent Ambo
5a902b53c5 feat(tazjin/tverskoy): Attempt to enable hardware video acceleration
Change-Id: I0592f5f9be9b01d7809e4d6a2d282e3398dbed4d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3706
Tested-by: BuildkiteCI
Reviewed-by: tazjin <mail@tazj.in>
2021-10-10 11:01:37 +00:00
Vincent Ambo
ac17de3cbd chore(tazjin/tverskoy): Timezone -> Europe/Stockholm
Change-Id: I8247ac6c15d3ee89e902737f160d5f0acae707bd
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3703
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-10-08 10:10:17 +00:00
Vincent Ambo
61e3e196fd feat(tazjin/tverskoy): Enable printing service
Change-Id: Ic74cf57cafb34b18ef632e4718493146dc063236
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3702
Reviewed-by: tazjin <mail@tazj.in>
Tested-by: BuildkiteCI
2021-10-08 10:10:17 +00:00