Commit graph

16511 commits

Author SHA1 Message Date
Vincent Ambo
aab994e0dc fix(tazjin/emacs): Enable telega check in CI again
Change-Id: Ia7b6921c1272dd6fe7ea81bd103ffa17bba1a922
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5255
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
2022-02-08 18:06:05 +00:00
Vincent Ambo
5be4d5b60d chore(3p/sources): Bump channels & overlays
Change-Id: I5774c0bc89f8dd7f034d90743f6c30ddfc4bb93e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5258
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-08 18:06:05 +00:00
Vincent Ambo
64b89b5287 chore(3p): remove abseil_cpp, grpc, protobuf, re2
We're now using the upstream versions of all of these with minor
overrides, no separate nonsense required.

Change-Id: I61ace7ccf7ff807ef3c7219b36e08629a2251699
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5246
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-08 17:21:59 +00:00
Vincent Ambo
aa96c3bd83 refactor(3p/nix): Inline LLVM overrides on dependencies
Change-Id: I5963ef4b83f1df25273a869f0e85144d347e444b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5251
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-08 17:21:59 +00:00
Griffin Smith
a81b1dc6ef feat(grfn/home): Add function for git show -s --pretty=reference
Change-Id: If639ac3515e92e7535f4c433948b3ec72424c035
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5261
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2022-02-08 16:59:56 +00:00
Vincent Ambo
d254dbb848 feat(depotfmt): Check & format Rust code with rustfmt
The rustfmt configuration of the depot is moved to `rustfmt.toml` (it
is recognised more reliably from this path than from the hidden
.rustfmt.toml).

Nested configuration is theoretically possible, but detection of
nested config files is flaky. Paths with nested config files need to
be disabled in the top-level check (I've excluded my user directory).

Change-Id: I385ce3ef529bda28fac03bfba86fc204c81b8a61
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5241
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2022-02-08 12:06:39 +00:00
Vincent Ambo
3d8ee62087 style(rust): Format all Rust code with rustfmt
Change-Id: Iab7e00cc26a4f9727d3ab98691ef379921a33052
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5240
Tested-by: BuildkiteCI
Reviewed-by: kanepyork <rikingcoding@gmail.com>
Reviewed-by: Profpatsch <mail@profpatsch.de>
Reviewed-by: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <tazjin@tvl.su>
2022-02-08 12:06:39 +00:00
Vincent Ambo
3318982f81 chore: move some meta.targets definitions to meta.ci.targets
Change-Id: Icdec1dec89158fb596c5185ac7105892081947f5
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5252
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
2022-02-08 12:06:10 +00:00
William Carroll
01ec92fc6b fix(wpcarro/fish): prefer absolute path for prompt.fish
Also move prompt.fish out of configs, which is a deprecated location.

Change-Id: I95360bc24b0b147a611881ed53e70bf1f9e5deea
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5256
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Tested-by: BuildkiteCI
2022-02-08 05:22:33 +00:00
Vincent Ambo
2ffea01c03 chore(wpcarro): move meta.targets definitions to meta.ci.targets
Change-Id: If45c9c939c607d02c1c636f9b54962aa527eed0e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5254
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: wpcarro <wpcarro@gmail.com>
2022-02-08 00:19:55 +00:00
Vincent Ambo
4c976c863f chore(grfn): move meta.targets definitions to meta.ci.targets
Change-Id: I1b77319a7218157818b4e48fadb98d00790b7f67
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5253
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
2022-02-07 23:27:49 +00:00
Vincent Ambo
5aa5d282ea chore(3p/abseil_cpp): unvendor abseil_cpp
we weren't actually using these sources anymore, okay?

Change-Id: If701571d9716de308d3512e1eb22c35db0877a66
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5248
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Autosubmit: tazjin <tazjin@tvl.su>
2022-02-07 23:09:46 +00:00
Vincent Ambo
a25675804c chore(nix/buildLisp): meta.targets -> meta.ci.targets
Change-Id: Ic8effcc94f3fcfa283436be3e5c0477ef89e9e94
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5247
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: tazjin <tazjin@tvl.su>
2022-02-07 22:28:41 +00:00
Vincent Ambo
5ed7ef8089 chore(3p/glog): Unvendor glog
... and build //third_party/nix with the one from nixpkgs.

Change-Id: Iae7f1772a31286f2c22955cdc1fe61ee82d112aa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3016
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: grfn <grfn@gws.fyi>
2022-02-07 22:25:00 +00:00
Vincent Ambo
18c8c41b5c fix(tools/depotfmt): clear cache when running checks
apparently the cache can get out-of-sync or something; either way we
had a build where it missed a file that was misformated.

Change-Id: I2967aec99ee1c7c8b978a3dfdfed4ff213bb6591
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5249
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-07 22:24:41 +00:00
Vincent Ambo
3452569ddd feat(tools/crfo-approve): Add tool for CRFO depot-interventions
In some cases we want to be able to "emergency approve" something on
behalf of a different user.

Example cases:

* clean up of abandoned directories with restrictive OWNERS
* security fixes blocked on people in different timezones

This script can be used to perform these approvals if the user is a
member of depot-interventions. Note that access to depot-interventions
is audit logged.

The user on behalf of whom approval is performed is always added to
the attention set to ensure that they are made aware of the CRFO
approval.

Note: This depends on nixpkgs#156466. Keeping WIP until we have a
channel with that patch.

Change-Id: I16e5f9d7baa9daab49c88b629bb8f024aad9d94c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5085
Tested-by: BuildkiteCI
Reviewed-by: kn <klemens@posteo.de>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-07 19:12:31 +00:00
Vincent Ambo
f82f459e2c fix(tazjin/emacs): allow jumping to front of workspace history
Classic off-by-one error.

Change-Id: I53e143d900f1d3751ad16b3b33532f32e2c6b411
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5245
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-07 19:12:16 +00:00
Vincent Ambo
d522e75554 feat(tazjin/emacs): emulate i3's "jump back-and-forth" feature
this feature makes it so that if you jump to a workspace by index, and
then ask to jump that same index again, you end up where you started.

this is useful for quickly jumping to something to look at it, and
then back.

Change-Id: I12f5bba88c0d5b3ae5956d2b6a606f49146551f7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5244
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-07 19:08:01 +00:00
Vincent Ambo
e00dd88b66 feat(tazjin/emacs): implement MRU navigation for exwm workspaces
this makes it possible to move forwards/backwards in workspace history
in the order in which I used them, while tracking the offset (e.g. it
is possible to go 3 steps back, do something, then move 2 steps
forward again).

this should make it possible to learn ad-hoc relative layouts for
whatever task i'm working on and reduce the number of times where i
frantically flip through all workspaces and try to figure out where
anything is.

note that this key binding is not very ergonomic, but i've remapped it
on my kinesis to the prior/next buttons. i never use those. using
<prior>/<next> directly doesn't work because too many modes override
them.

Change-Id: I257723b9e14a68b53be68539dd752db3445546e7
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5243
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-02-07 19:08:01 +00:00
Vincent Ambo
50d959175d fix: add cl/4397 (treewide nixpkgs-fmt) to git-blame-ignore-revs
With this change running git blame will ignore the reformat and start
from the commits before it (wherever possible).

Change-Id: I384a4261a6d4f1c2fe79453f696b23503a56e96e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5239
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-07 18:15:09 +00:00
Vincent Ambo
67a31e7252 fix(web/panettone): unbind LDAP connections after auth
unbind & close the stream of newly created LDAP connections after
auth, which might prevent some of the resource leaking we've got going
on

i did actually verify in sly that this still works. yay.

Change-Id: I92c8ca20de642585ae4c24aa455d051ee6e44a87
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5193
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
2022-02-07 17:13:41 +00:00
Vincent Ambo
0d0b43ed88 fix(users/tazjin): rustfmt code with non-default settings
rustfmt only sometimes detects path-based nested config
files (probably some kind of race?), so my users folder uses a
separate formatting check for rustfmt to avoid flaky CI. Enough flakes
around already ...

Change-Id: Ifd862f9974f071b3a256643dd8e56c019116156a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5242
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-07 16:58:59 +00:00
Vincent Ambo
8b8c98380e refactor(readTree): deprecate meta.targets for meta.ci.targets
This means that we use the meta.ci attribute more consistently.

The meta.targets attribute is still read, but prints a big, red
warning telling people to migrate to the new one.

Fixes b/176

Change-Id: Ifb4452f529cfc6bbd5018ad7374cac1c83b10045
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5238
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-07 15:13:52 +00:00
Vincent Ambo
3bde425860 refactor(nix): Move mkLabel from buildkite to readTree
This function is more generically useful than just for pipeline
construction.

A subsequent commit will use it inside of readTree itself.

Change-Id: I5eabd6f659726484667e060958865dddbc205762
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5237
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-07 15:13:52 +00:00
Vincent Ambo
98b6af02f5 chore(mq_cli): Rename cargo project to mq_cli
I am trying to publish this to crates.io, and `mq` is already taken up
by what seems to be a dead project.

Change-Id: I14d1f5f31f167fde954d9c1e39fc9fec5f4c3d10
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5234
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-05 13:46:11 +00:00
Vincent Ambo
0971705902 chore(mq_cli): prepare new release
Same trick as in the last commit, trying to hit the right revision.

Change-Id: I0af9e88b4d2fd8239a7819dbe0da13f26cca8d6b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5233
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-05 13:37:31 +00:00
Vincent Ambo
77fbe57819 chore(posix_mq.rs): Prepare new release to crates.io
... and update some outdated stuff in the README while we're at it.

Change-Id: Ib3a12596bd1ba61e91ac6e1d37106b616da3030d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5232
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-05 13:29:04 +00:00
Vincent Ambo
b5150fbacf fix(nix/buildkite): read & print the store path of built derivations
This was useful to have in CI, e.g. when targeting a specific NixOS
system. The actual result symlink which is printed is not useful.

Alternative solution would be to change the wrapping of this so that
we conditionally create the symlink for extra steps, but I think it's
not worth the complexity of evaluating the step twice.

Change-Id: Id86eb5114bec935c63a2907ec5f169fc5d41a6cc
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5227
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-04 19:49:47 +00:00
Vincent Ambo
91ef2b671e chore(ops/posix_mq.rs): upgrade to nix 0.23
The previous version had a CVE.

As part of this upgrade, the handling of errors inside of the Nix
crate changed, which we now accommodate.

Change-Id: Iad9a473c1782e0d79919cb5dc3f76316852d8a16
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5226
Tested-by: BuildkiteCI
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-04 15:58:19 +00:00
sterni
a2ecd53f58 chore: clean up some obsolete TODOs
* //3p/nix: probably not worth investing time into this anymore

* //users/sterni/emacs: The emoji problem disappeared by itself with a
  newer emacs version, however a different one remains…

* //web/panettone: If we ever want to change the behavior, we should
  just decide the behavior statically instead of using conditions and
  restarts, as we only call it in one place, so making different
  decisions depending on call sites is not really a use case we have.

Change-Id: Iff9d439ce356db41ce34d690fb7b6a01822022fa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5223
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-02-04 15:55:19 +00:00
sterni
0e45761853 chore(3p): Bump NixOS channels and emacs overlay to 2022-02-03
* //nix/buildLisp: This channel bump brought a bizarre regression
  in ccl, causing binaries to crash on thread clean up. This was
  likely caused by a glibc update in nixpkgs. We'll disable emitting CI
  targets for ccl until we can find out and fix what's going on.

Change-Id: I37629f384fa99ec4ef96ce7127fa7569adecb687
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5207
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-02-04 14:39:41 +00:00
Vincent Ambo
132798cceb fix(ops/posix_mq.rs): use newer struct mem::MaybeUninit
The previous mem::unitialized method was deprecated in favour of this
struct which carries information about the initialisation state
forward to the compiler.

Change-Id: Ib5f5d1ad91f9957b18eebabc1048f8649bc74049
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5225
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-04 12:47:55 +00:00
Vincent Ambo
054fe8f94b refactor(ops/posix_mq.rs): Update code using deprecated Error trait
The previous Error::description method was deprecated.

Change-Id: I63efd272484c8715b9f324ab09e967fbf53cf55a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5224
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-04 12:47:55 +00:00
sterni
487dd4189e fix(format-audit-results.jq): use advisories over vulnerabilities
Many of the vulnerabilities (in the respective crates) reported are not
actually exploitable vulnerabilties of the packages we report them for.
Consequently it is more accurate to state that they are advisories.

Change-Id: I02932125b77fc9c71e583ae49e822fd3438dce05
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5202
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-02-04 11:22:43 +00:00
sterni
66055161fb feat(tools/rust-crates-advisory): omit GHFM checklist in buildkite
Buildkite doesn't understand GitHub Flavored Markdown and having a read
only checklist in there is probably not much use.

Change-Id: I41538487087e8c817b1a5e653f077bb0fbe6eb47
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5201
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-02-04 11:22:43 +00:00
sterni
5d06425655 chore: move format-audit-result.jq out of //users/sterni
In the spirit of the readTree filter we should also not include files in
user directories from the outside.

Change-Id: I1abe36a721048900d2758b5986063b68b8d1af93
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5200
Reviewed-by: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-02-04 11:20:41 +00:00
sterni
c3684740ad feat(tools/rust-crates-advisory): also check all our Cargo.locks
check-all-our-lock-files works very similarly to
//users/sterni/nixpkgs-crate-holes, even reusing some parts of it, but
is much simpler since we don't need to extract the lock files — they are
already in tree.

It is implemented as a very simple script which just traverses the
subtree of the current directory, collecting all warnings. When
executing this script in buildkite via extraSteps, it never fails,
instead annotating the pipeline run with a warning.

Change-Id: I0a0bc26deffe7b20b99f5aa7238fb3c3bb9deb92
Reviewed-on: https://cl.tvl.fyi/c/depot/+/3721
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-02-04 11:20:41 +00:00
sterni
32da9861d5 refactor: expose cheddar-about script from cheddar
Any other cgit configuration in depot would need this script wrapper as
well.

Change-Id: Ifa04e1c9de9c925eb3f60c5d3854221ae02ef06c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5206
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: sterni <sternenseemann@systemli.org>
2022-02-03 23:41:08 +00:00
sterni
e2238d6315 fix(3p/rustsec-advisory-db): expose rev for nixpkgs-crate-holes
Not sure if this used to work or if I started using the rev attribute in
nixpkgs-crate-holes without actually testing it. The failure in any case
is hidden from CI as it occurs at runtime, being hidden behind a
function.

Change-Id: Ib1db5393554a699c7c4b18697a9c9c902e93a507
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5199
Tested-by: BuildkiteCI
Autosubmit: sterni <sternenseemann@systemli.org>
Reviewed-by: tazjin <tazjin@tvl.su>
2022-02-03 23:40:16 +00:00
Vincent Ambo
cf5f9d5ead chore(tazjin/tverskoy): Remove some unused software
Change-Id: I1b6766a2c92a6ef8c93dfdbd7913923752de2513
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5222
Reviewed-by: tazjin <tazjin@tvl.su>
Autosubmit: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-03 23:13:13 +00:00
Vincent Ambo
8099c11a12 fix(tazjin/tverskoy): Downgrade strongswan to 5.9.4
Comments contain all the relevant info.

Change-Id: I6d4a715889b562dc79148314092f698ceefcac88
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5221
Tested-by: BuildkiteCI
Reviewed-by: tazjin <tazjin@tvl.su>
2022-02-03 23:08:38 +00:00
Vincent Ambo
7fcede0c5b fix(tazjin/tverskoy): Keep only one copy of Emacs
Change-Id: I88994777f4191efe4a4f297780bf9477638b87d2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5204
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-03 16:28:46 +00:00
Vincent Ambo
af0c761553 chore(tazjin/tverskoy): Remove Spotify and Steam
They're big and I don't use them.

Change-Id: I87978c93ecf6cb5b5dd9935da61b0671522b06fa
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5203
Autosubmit: tazjin <tazjin@tvl.su>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-02-03 16:28:46 +00:00
sterni
5bc73de59d feat: move mblog header handling into mime4cl
Accessing the headers of a MIME message feels like something mime4cl
should handle. We implemented this ad hoc in mblog before in order to
not need to worry about doing it in a sensible way. Now we introduce a
decent-ish interface for getting a header from a MIME message,
mime-message-header-values:

* It returns a list because MIME message headers may appear multiple
  times.

* It decodes RFC2047 only upon request, as you may want to be stricter
  about parsing certain fields.

* It checks header name equality case insensitively.

The code for decoding the RFC2047 string is retained and still uses
babel for doing the actual decoding.

Change-Id: I58bbbe4b46dbded04160b481a28a40d14775673d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5150
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
81c47da91c refactor(sterni/mblog/note): don't escape streams char by char
Depending on the stream backing this, read-sequence should be more
efficient.

Change-Id: I5d0461f76f4b132ac6e6c3a2e503f0173d5f4114
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5194
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
98e4cd032f feat(users/sterni/mblog): implement mblog executable
This change finally sort of puts the parts together: We take a maildir,
render all its note messages as standalone HTML, extract the attachments
alongside and finally generate a global index page linking all notes.

The new executable and mnote-html are both contained in the same image
and we dispatch the right functionality based on argv[0].

Change-Id: I5a5bdbfaca79199f92e73ea4a2f070fa900d2bc4
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5113
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
6cd1f6f183 refactor(sterni/mblog/note): only get escape-char-minimal from WHO
This is the only thing we need from that package and it avoids having
to solve the annoying conflict between closure-html and who.

Change-Id: Iacfb8d4948d1987e767ffc456b8e141b468ef6d9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5111
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
5789814dec fix(users/sterni/mblog): handle RFC2047 in subjects
Non ASCII Subjects will use RFC2047 to encode their content. Using
mime4cl's parse-RFC2047-text we obtain a list of ASCII strings and byte
vectors tagged with their encoding. Using babel we can then decode the
byte sequence, assuming the encoding is named the same in babel and
RFC2047 (which it is for UTF-8 at least…).

Change-Id: I2840672409452bd194fb1635721e338364d9b484
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5078
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-02-02 20:47:45 +00:00
sterni
c3cf66f248 feat(3p/lisp/mime4cl): cache offset in delimited-input-stream
By computing the amount the stream position advanced we can save a
syscall on every read which speeds up mime:mime-body-stream by /a lot/,
e.g. extracting a ~3MB attachment drops from over 15s to under ~0.5s.
There's still a lot to be gained and correctness left to be desired
which can be addressed as described in the newly added comment.

Change-Id: I5e1dfd213aac41203f271cf220db456dfb95a02b
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5073
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00
sterni
56ec3b1803 refactor(sterni/mblog): add (sub)class for apple note messages
* Upon creation of an apple-note object we can check if certain fields
  we are interested in are present and of the right type etc.

  These currently are:

  - UUID (for links later)
  - Subject (title)
  - Time
  - Text part with supported MIME type

  These are then put into their own shortcut fields in the apple-note
  subclass which allows for easier access and forces us to make sure
  they are present.

* Split out everything note related into its own package. Using the new
  type, we can expose an interface which sort of makes sense.

Change-Id: Ic9d67518354e61a3cc8388bb0e566fce661e90d0
Reviewed-on: https://cl.tvl.fyi/c/depot/+/5072
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
2022-02-02 20:47:45 +00:00