2019-09-02 18:10:53 +02:00
|
|
|
depot
|
|
|
|
=====
|
|
|
|
|
2020-01-19 02:43:56 +01:00
|
|
|
[![builds.sr.ht status](https://builds.sr.ht/~tazjin/depot/master.svg)](https://builds.sr.ht/~tazjin/depot/master?)
|
2020-01-18 16:52:13 +01:00
|
|
|
|
2019-12-20 19:58:02 +01:00
|
|
|
This repository is the [monorepo][] for my personal tools and infrastructure.
|
|
|
|
Everything in here is built using [Nix][] with an automatic attribute-set layout
|
|
|
|
that mirrors the filesystem layout of the repository (this might feel familiar
|
|
|
|
to users of Bazel).
|
2019-09-02 18:10:53 +02:00
|
|
|
|
2019-12-20 19:58:02 +01:00
|
|
|
This repository used to be hosted on GitHub, but for a variety of reasons I have
|
|
|
|
decided to take over the management of personal infrastructure - of which this
|
|
|
|
repository is a core component.
|
|
|
|
|
|
|
|
If you've ended up here and have no idea who I am, feel free to follow me [on
|
|
|
|
Twitter][].
|
|
|
|
|
|
|
|
# Highlights
|
|
|
|
|
|
|
|
## Tools
|
|
|
|
|
|
|
|
* `tools/emacs` contains my personal Emacs configuration (packages & config)
|
2019-12-20 21:37:02 +01:00
|
|
|
* `fun/aoc2019` contains solutions for a handful of Advent of Code 2019
|
2019-12-20 19:58:02 +01:00
|
|
|
challenges, before I ran out of interest
|
|
|
|
* `tools/blog_cli` contains my tool for writing new blog posts and storing them
|
|
|
|
in the DNS zone
|
2020-01-11 03:01:39 +01:00
|
|
|
* `tools/cheddar` contains a source code and Markdown rendering tool
|
|
|
|
that is integrated with my cgit instance to render files in various
|
|
|
|
views
|
2019-12-20 21:37:02 +01:00
|
|
|
* `ops/kms_pass.nix` is a tiny tool that emulates the user-interface of `pass`,
|
|
|
|
but actually uses Google Cloud KMS for secret decryption
|
2019-12-21 02:46:54 +01:00
|
|
|
* `ops/kontemplate` contains my Kubernetes resource templating tool (with which
|
|
|
|
the services in this repository are deployed!)
|
2019-12-20 19:58:02 +01:00
|
|
|
|
|
|
|
## Packages / Libraries
|
|
|
|
|
2019-12-20 21:37:02 +01:00
|
|
|
* `nix/buildGo` implements a Nix library that can build Go software in the style
|
|
|
|
of Bazel's `rules_go`. Go programs in this repository are built using this
|
|
|
|
library.
|
2020-01-11 03:01:39 +01:00
|
|
|
* `nix/buildLisp` implements a Nix library that can build Common Lisp
|
|
|
|
software. Currently only SBCL is supported. Lisp programs in this
|
|
|
|
repository are built using this library.
|
2019-12-20 21:37:02 +01:00
|
|
|
* `tools/emacs-pkgs` contains various Emacs libraries that my Emacs setup uses,
|
|
|
|
for example:
|
2019-12-21 02:48:11 +01:00
|
|
|
* `dottime.el` provides [dottime][] in the Emacs modeline
|
2019-12-20 21:37:02 +01:00
|
|
|
* `nix-util.el` provides editing utilities for Nix files
|
|
|
|
* `term-switcher.el` is an ivy-function for switching between vterm buffers
|
2019-12-21 02:46:54 +01:00
|
|
|
* `net/alcoholic_jwt` contains an easy-to-use JWT-validation library for Rust
|
|
|
|
* `net/crimp` contains a high-level HTTP client using cURL for Rust
|
2019-12-20 19:58:02 +01:00
|
|
|
|
|
|
|
## Services
|
|
|
|
|
|
|
|
Services in this repository are deployed on a Google Kubernetes Engine cluster
|
|
|
|
using [Nixery]().
|
|
|
|
|
2020-02-09 02:30:34 +01:00
|
|
|
* `web/blog` and `web/homepage` contain my blog and website setup
|
|
|
|
(serving at [tazj.in][])
|
2019-12-20 21:37:02 +01:00
|
|
|
* `web/cgit-taz` contains a slightly patched version of `cgit` that serves my
|
|
|
|
git web interface at [git.tazj.in][]
|
|
|
|
* `ops/sync-gcsr` contains a tiny service that synchronises a Google Cloud
|
2019-12-20 19:58:02 +01:00
|
|
|
Source Repository with a local disk path. My `cgit` setup uses this
|
|
|
|
under-the-hood.
|
2019-12-21 02:46:54 +01:00
|
|
|
* `ops/journaldriver` contains a small Rust daemon that can forward logs from
|
|
|
|
journald to Stackdriver Logging
|
|
|
|
|
|
|
|
## Miscellaneous
|
|
|
|
|
|
|
|
Presentations I've given in the past are in the `presentations` folder, these
|
|
|
|
cover a variety of topics and some of them have links to recordings.
|
|
|
|
|
|
|
|
There's a few fun things in the `fun/` folder, often with context given in the
|
|
|
|
README. Check out my [list of the best tools][best-tools] for example.
|
2019-12-20 19:58:02 +01:00
|
|
|
|
|
|
|
# Contributing
|
|
|
|
|
2019-12-20 21:37:02 +01:00
|
|
|
If you'd like to contribute to any of the tools in here, please check out the
|
|
|
|
[contribution guidelines](/tree/docs/CONTRIBUTING.md).
|
2019-09-02 18:10:53 +02:00
|
|
|
|
|
|
|
[monorepo]: https://en.wikipedia.org/wiki/Monorepo
|
|
|
|
[Nix]: https://nixos.org/nix
|
2019-12-20 19:58:02 +01:00
|
|
|
[on Twitter]: https://twitter.com/tazjin
|
2019-09-02 18:10:53 +02:00
|
|
|
[Nixery]: https://github.com/google/nixery
|
2019-12-20 19:58:02 +01:00
|
|
|
[tazj.in]: https://tazj.in
|
|
|
|
[git.tazj.in]: https://git.tazj.in
|
2019-12-21 02:46:54 +01:00
|
|
|
[best-tools]: /about/fun/best-tools/README.md
|
2019-12-21 02:48:11 +01:00
|
|
|
[dottime]: https://dotti.me
|