| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
| |
Add a mechanism to run checks for go (fmt/mod tidy) and one for
terraform.
Fix the configuration for shellcheck (it was not checking the files).
Change-Id: I1d250b96bd22838eddf624fda6b4d78d5da3e39f
Reviewed-on: https://cl.fcuny.net/c/world/+/715
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I9d1ff1b7de5cb89ffcf40bc91e794f7ff420c1e8
Reviewed-on: https://cl.fcuny.net/c/world/+/717
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Id11ad998c30d6e863ab3b43552b9fe248a0d6c7f
Reviewed-on: https://cl.fcuny.net/c/world/+/716
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This terraform configuration is to create the buckets that I'm using for
various buckets. Doing this through the UI is difficult, as there are
too many options, it's easy to have different buckets with different
settings when I need them to be identical, no way to review what the
change is going to look like, etc.
Change-Id: I8ee15939559e7632e2df9d17cfaec75d756930b6
Reviewed-on: https://cl.fcuny.net/c/world/+/713
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
| |
Change-Id: I8e08d5ee8649f31e52bfdedda8083a2b78dba54d
|
|
|
|
|
|
|
| |
Change-Id: Ifb970bc6835fbc0de1943349739524331b6dba76
Reviewed-on: https://cl.fcuny.net/c/world/+/712
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since I'm using terraform for a few things, I want to store the state in
a GCP bucket. This script takes care of creating the bucket, creating
the service account for terraform, setting the roles, and enabling
impersonation.
The script is (or at least is intended) to be idempotent. If a new
project is created, running will update only what is needed.
Change-Id: Ie92703be6d17749dc76dabcf9e73e7b274e8d2ac
Reviewed-on: https://cl.fcuny.net/c/world/+/711
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of using a key for the terraform service account, use
delegation. This simplifies a bit the setup:
- no need to have a local key
- principle of least privilege
- no need to setup some environment variables
Update the documentation in case something goes wrong in the future.
Change-Id: I430bdf6816419da35ae8a36cec55ce56491b985c
Reviewed-on: https://cl.fcuny.net/c/world/+/710
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The configuration needs to be updated, we set the value for
`bucket_policy_only` to true now that we've set the bucket to use
uniform bucket level
access (https://cloud.google.com/storage/docs/uniform-bucket-level-access).
Change-Id: I7e9516709af4be35a3964937c1dbd728bcfe1f01
Reviewed-on: https://cl.fcuny.net/c/world/+/709
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ie87672629ff23eeb93f5308898014cc737490b7c
Reviewed-on: https://cl.fcuny.net/c/world/+/708
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I63fc8fd81679457f7dbeafc2bd10c0eded0de991
Reviewed-on: https://cl.fcuny.net/c/world/+/707
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
This is the pipeline that is executed when a new build starts. It wait
for all the steps to be completed, and if one of them fail, the build is
marked as failed.
Change-Id: I1eb22b27749944de78d44e49586a1db1fe07b460
Reviewed-on: https://cl.fcuny.net/c/world/+/706
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I17ea0baab0d74888ed1b21342c583495d3f52643
Reviewed-on: https://cl.fcuny.net/c/world/+/705
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I2b495c55191f3192b871cfb9d06445817c16e0de
Reviewed-on: https://cl.fcuny.net/c/world/+/704
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
Configure the way we import these packages the same way, that way it's
consistent and easy to use.
Change-Id: I0e218f8fe9dd4cd2045bfee11c80de84ff769fe1
Reviewed-on: https://cl.fcuny.net/c/world/+/703
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I9bf0524ec12c4d554fc4c7ded458aab8a9cf5ef6
Reviewed-on: https://cl.fcuny.net/c/world/+/702
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
The function `groupExists` returns a boolean, what we want is
`groupIfExists` which returns the actual name of the group.
Change-Id: I7db50066e13932dd617ffccb9dae40ecb1d383a5
Reviewed-on: https://cl.fcuny.net/c/world/+/701
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
In the `mkSystem` function, instead of defining each tools, let's import
all of them at once. This works both with installing a tool from a
module or running them from the CLI.
Change-Id: Ia44ff9a45b54a1ecea6f6b02b4cad2956799f627
Reviewed-on: https://cl.fcuny.net/c/world/+/682
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
Since I have configured the pre-commit hooks, I can use them instead of
my custom scripts: less things to maintain and easier to read output.
Change-Id: Ic833ec88ed9fbcbe52b1b1680f978da3a5a08b31
Reviewed-on: https://cl.fcuny.net/c/world/+/681
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
```
fcuny@aptos ~/w/world (main)> nix flake lock --update-input nixpkgs
warning: updating lock file '/home/fcuny/workspace/world/flake.lock':
• Updated input 'nixpkgs':
'github:nixos/nixpkgs/f961520b1f163beb178ad2af448832985c7f8417' (2022-06-09)
→ 'github:nixos/nixpkgs/d2ff0167ce734340e745ca1f53b11a0996ff17a4' (2022-07-20)
```
Change-Id: I8e5efd490cf7f15e84c99ccb27d75660080813a4
Reviewed-on: https://cl.fcuny.net/c/world/+/663
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I84deb43c422668719157a5027e8dbea9a1ec92cf
Reviewed-on: https://cl.fcuny.net/c/world/+/662
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ibc81727971cfbd7b05c383a1c58ca02b907683f7
Reviewed-on: https://cl.fcuny.net/c/world/+/661
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Secrets can have multiple attributes: the owner, group, mode and path.
So far, we were setting the file (path where it should be read from),
the owner (if it exists), the group (if it exists) and the mode. The
attribute 'path' was not propagated correctly.
We now check for all these attributes (as optional) and if they exists
we set them. We still validate that the user and group exist before
setting them.
Change-Id: Ifeccf2ee9d0acd17a3cd05de8d08968cea49550b
Reviewed-on: https://cl.fcuny.net/c/world/+/641
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently the secure configuration for gerrit is not managed by nix.
This is likely going to break in the future and I'll hate myself for
that. Let's move it into nix and encrypt it with age, like we do for
other secrets.
Change-Id: Ia7a006748a3ad64fa4b97ca9e8cbd98c99433982
Reviewed-on: https://cl.fcuny.net/c/world/+/622
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
It's spamming journald, and I don't need that level of details.
Change-Id: If6bd8338cf3ed5d7981500e0f3001a3dc4c14870
Reviewed-on: https://cl.fcuny.net/c/world/+/621
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
I don't need to backup these directories in my home.
Change-Id: Ia2302f2ebe74033090b86b52864787d2a63ecb4b
Reviewed-on: https://cl.fcuny.net/c/world/+/620
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
If an email has the tag 'archive' while in the Inbox folder, it needs to
be moved to the archive directory.
Change-Id: I44efc9e51fe0e749a5a2ffa15fe32b8b945d12f0
Reviewed-on: https://cl.fcuny.net/c/world/+/609
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
I do not need this filter anymore, it was a one time thing to make sure
all emails in the archive directory are tagged properly. Running this
every 5 minutes is not needed, but it also trigger the fans on the XPS,
so let's remove this.
Change-Id: I6ab3669b5708997e4e3681a5d7b0416efe8a1dd9
Reviewed-on: https://cl.fcuny.net/c/world/+/608
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ia651a1821c44ec45a2dae033e44c91c9eab8459e
Reviewed-on: https://cl.fcuny.net/c/world/+/607
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
Move the mails based on some rules, then we can synchronize local and
remote stores.
Change-Id: Iae46d94b14606c54a05efa0aa7eb5ca1eb1deb90
Reviewed-on: https://cl.fcuny.net/c/world/+/603
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ieaa3163db8f73bb6e299304099e3325bba99cc10
Reviewed-on: https://cl.fcuny.net/c/world/+/602
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
The path is incorrect, and it's not needed. Instead of fixing the path
let's drop the variable.
Change-Id: I0b86add1739769810ec8369aac8da60ba38fa0bd
Reviewed-on: https://cl.fcuny.net/c/world/+/601
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
Add pre-commit hooks for:
- trailing white spaces
- new lines at the end of files
Change-Id: I02b5c125064b1cc43e3dfcd7504f60df50846c36
Reviewed-on: https://cl.fcuny.net/c/world/+/593
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
The pre-commit hook for new lines reported and correct a number of
issues, so let's commit them now and after that we ca enable the hook
for the repository.
Change-Id: I5bb882d3c2cca870ef94301303f029acfb308740
Reviewed-on: https://cl.fcuny.net/c/world/+/592
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tool `pre-commit' is installed as part of the nix shell for this
repository, but not on the host (or in my profile). It means that if I
try to make a commit via Emacs/magit, it fails, since it's not in my
path.
By installing it with home-manager, it's in the path, and it can be used
by magit when creating a commit.
Change-Id: Ifa61d0be1027043eecaf11dd40fbba1ed2f5a9a6
Reviewed-on: https://cl.fcuny.net/c/world/+/591
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
And configure them to run nixpkgs-fmt and shellcheck.
Change-Id: I0aa2025e368b80c5e7d90a4dc05448494525e31e
Reviewed-on: https://cl.fcuny.net/c/world/+/590
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
| |
Change-Id: I22fad8e0dcdc7c678ea4d7b9235fa5fe4fcdd84d
Reviewed-on: https://cl.fcuny.net/c/world/+/589
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
|
| |
Don't make it harder to maintain the flake.nix, just add the tools to
this module and import it in the flake configuration.
Change-Id: I62237b996b1c8319c48b9ca4a80e7a3062ef92ec
Reviewed-on: https://cl.fcuny.net/c/world/+/588
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
| |
This is more readable.
Change-Id: Ibdb6cf2f880f8fe3be80f9049bdf18b2d9120b91
Reviewed-on: https://cl.fcuny.net/c/world/+/587
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
| |
For now the only system we support with nix is linux on x86.
Change-Id: Ia7d6173ab0be674e9be706f9c0eb02937aa87ac6
Reviewed-on: https://cl.fcuny.net/c/world/+/586
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
| |
This name is more specific (f is for flake in this case).
Change-Id: Iaad98d8325b81cfe1af8b692ef7cd13586f251e6
Reviewed-on: https://cl.fcuny.net/c/world/+/585
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
| |
Change-Id: I8cb6cfcc89fd2c4167a99a27f8e50d954bacdf6a
Reviewed-on: https://cl.fcuny.net/c/world/+/584
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ia09983533b3527e50eb4c0828d675e72a782c146
Reviewed-on: https://cl.fcuny.net/c/world/+/581
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I60d1d552d028a4b2db2e0c62c1d2d580a4e58e1a
Reviewed-on: https://cl.fcuny.net/c/world/+/562
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the name of the project has a `.' in it's name (for example
`Emacs.d'), buildKite automatically replace it with `-dot'. Which means
that we also have to do this conversion here otherwise we're trying to
build against a pipeline that does not exists.
Change-Id: I54a7dce40da854f125ff43bfbd252b0cd5bfcb29
Reviewed-on: https://cl.fcuny.net/c/world/+/561
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
| |
Change-Id: Ib0e376366ea684a254b7993a746e082e38849daa
Reviewed-on: https://cl.fcuny.net/c/world/+/521
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As noted in
https://github.com/yandex/gixy/blob/master/docs/en/plugins/aliastraversal.md
> if you want to map a single file make sure the location starts with a
> =, e.g =/i.gif instead of /i.gif
Without a leading `=`, the configuration refuses to build.
Change-Id: Ib49f68fbe26441ff6c3ee91efa1d12c3778a0248
Reviewed-on: https://cl.fcuny.net/c/world/+/489
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
| |
Change-Id: I96db1763dcc85d43ca5913a95d702cf96830c7b0
Reviewed-on: https://cl.fcuny.net/c/world/+/488
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only serve a response if the request is coming from tailscale. To ensure
this is the case, let's configure nginx to only listen on the tailscale
IP of the host for that server.
Note: the IP for tailscale is hard coded, there has to be a better way.
Change-Id: I83952484f60206df215e8c03017cfe7722d32697
Reviewed-on: https://cl.fcuny.net/c/world/+/487
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only serve a response if the request is coming from tailscale. To ensure
this is the case, let's configure nginx to only listen on the tailscale
IP of the host for that server.
Note: the IP for tailscale is hard coded, there has to be a better way.
Change-Id: I684f2da60a128652fac2f7004bec22ce4bf959d0
Reviewed-on: https://cl.fcuny.net/c/world/+/486
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only serve a response if the request is coming from tailscale. To ensure
this is the case, let's configure nginx to only listen on the tailscale
IP of the host for that server.
Note: the IP for tailscale is hard coded, there has to be a better way.
Change-Id: I75978866eb978439df76cede5bf993762f7cd5ab
Reviewed-on: https://cl.fcuny.net/c/world/+/485
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only serve a response if the request is coming from tailscale. To ensure
this is the case, let's configure nginx to only listen on the tailscale
IP of the host for that server.
Note: the IP for tailscale is hard coded, there has to be a better way.
Change-Id: I8b497507b2c8548d824c2e2bb693b38768b355b9
Reviewed-on: https://cl.fcuny.net/c/world/+/484
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only serve a response if the request is coming from tailscale. To ensure
this is the case, let's configure nginx to only listen on the tailscale
IP of the host for that server.
Note: the IP is currently hard coded, there has to be a better way.
Change-Id: I21b6db5e94070024c1ff8d6cea852aafd6952b55
Reviewed-on: https://cl.fcuny.net/c/world/+/483
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a request goes through nginx without a Host header set, the default
site we serve is cgit.
Without this option, nginx will pick the first site defined in the
configuration, which is not what I want. I want to be specific about
what is the default.
Change-Id: If131b80c1488510e79d60ef6de5bb9db4fa18d58
Reviewed-on: https://cl.fcuny.net/c/world/+/482
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I75df9d3ba133e3f7380a518e1b8c70a564f60482
Reviewed-on: https://cl.fcuny.net/c/world/+/481
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`/var/lib/unifi` is almost 1GB. The data directory contains a lot of
files that are changing constantly, which creates a significant amount
of data to backup everyday. Overall if I need to restore a backup for
unifi, I don't care about metrics and other application data, I only
need to restore a backup, which contains the network configuration.
`/var/lib/unifi/data/backup` is smaller:
```
fcuny@tahoe ~> sudo du -sh /var/lib/unifi/data/backup
332M /var/lib/unifi/data/backup
```
and each backup is about 12MB:
```
fcuny@tahoe ~> sudo ls -ltrh /var/lib/unifi/data/backup/autobackup|tail -2
-rw------- 1 unifi unifi 12M Jun 22 18:15 autobackup_6.5.55_20220623_0115_1655946900001.unf
-rw------- 1 unifi unifi 5.0K Jun 22 18:15 autobackup_meta.json
```
This will reduce the churn in our daily backup significantly.
Change-Id: Ie39ffa9055605298a82ba6731acc34fd4e29309c
Reviewed-on: https://cl.fcuny.net/c/world/+/471
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I394d4cd05ff763aed28e91d86e2905f6ad414336
Reviewed-on: https://cl.fcuny.net/c/world/+/470
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
As reported by the linter.
Change-Id: I649fc3d90387bda28efe025dd7ccb54d4296d1bd
Reviewed-on: https://cl.fcuny.net/c/world/+/469
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
This package contains a number of go tools, like staticcheck.
Change-Id: I4c923137a430b782ef3ed090bc252586e2ed36ef
Reviewed-on: https://cl.fcuny.net/c/world/+/468
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
| |
Change-Id: I2dffe70dae5ef287c49d3504f9db438661adc16b
Reviewed-on: https://cl.fcuny.net/c/world/+/465
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ifa382713e3f7cf2360b58d6c05a8a200258921f2
Reviewed-on: https://cl.fcuny.net/c/world/+/464
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I309e378a9cd1871fc84b395a6e077757106d2628
Reviewed-on: https://cl.fcuny.net/c/world/+/463
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
Use the existing one.
Change-Id: I3983aa234528a97ebab87982c8af88472a5a2933
Reviewed-on: https://cl.fcuny.net/c/world/+/462
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I7c898923c423a30cbc5ba8ba79fb8b9e8e4d2d21
Reviewed-on: https://cl.fcuny.net/c/world/+/461
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
| |
Change-Id: I14c7b3349973db99c01c102c57f453840f284612
Reviewed-on: https://cl.fcuny.net/c/world/+/460
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
nixpkgs-fmt is a tool to format nix code. This is the one the nix
community seems to
recommend (https://github.com/nix-community/nixpkgs-fmt) so I should use
it.
I'm installing this with Emacs because that's how I interact with this
code, and I'll configure Emacs to use it for formatting the code.
Change-Id: I4364a898c54c75ace12d07636085faa7e9c050c7
Reviewed-on: https://cl.fcuny.net/c/world/+/459
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I03a35a211c7563e65770b39b140099291efafab9
Reviewed-on: https://cl.fcuny.net/c/world/+/458
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
| |
Change-Id: I905ce6eddc35e4c51a0ab27c8984e0da0fdee7a7
Reviewed-on: https://cl.fcuny.net/c/world/+/457
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
|
| |
By moving the aliases to a shared module, they can be used between zsh
and fish.
Change-Id: Ifcfe0af3b90825fe3a67bc1796d4cf65a58d3ff2
Reviewed-on: https://cl.fcuny.net/c/world/+/456
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I'm considering trying again fish, and there are a number of things that
should be common between zsh and fish (aliases, environment variables,
...).
Instead of duplicating these settings multiple time, I'm consolidating
the shell configurations under `home/shell`, and I can set the shell I
want to use with `my.home.shell.name`.
The first step is to move the modules for fish and zsh under
`home/shell`, add an interface to pick which one I want to use, and
modify the `host/home.nix` configuration to keep using zsh with the new
interface.
Change-Id: Idb66b1a6fcc11a6eeaf5fd2d32dd3698d2d85bdf
Reviewed-on: https://cl.fcuny.net/c/world/+/455
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example:
```
% echo 1 20 12 32 19 2 | ./seqstat -S
▁▅▃█▅▁
min: 1.000000
max: 32.000000
avg: 14.333333
p50: 19.000000
p90: 32.000000
p99: 32.000000
p999: 32.000000
ordered sequence: [1 2 12 19 20 32]
```
Change-Id: I9303bd7d0e964948143e77c868de8777cd7a9951
Reviewed-on: https://cl.fcuny.net/c/world/+/454
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The tool maps the various PCI devices to the NUMA node they are attached
to and print the result to STDOUT in JSON.
Only ethernet, NVMe and GPU devices are accounted for at the moment.
Change-Id: If32c805e61211f0ef4838a82eabc70d7fc1985fe
Reviewed-on: https://cl.fcuny.net/c/world/+/453
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
Given a PID, the tool reports the scheduler latency for it.
Change-Id: I52e1de81a91f53ac74734dfd808fd4d7ac00c685
Reviewed-on: https://cl.fcuny.net/c/world/+/452
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ia4e1aa1e7fc48b8bfb619aba9ba71037ffcc69f8
Reviewed-on: https://cl.fcuny.net/c/world/+/451
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
This tool can be used to create a new git repository. It will create a
README, add the license file, and a few other things I expect.
Change-Id: I14123c8f5b7e2d23373a505a146d2c9f6c08615e
Reviewed-on: https://cl.fcuny.net/c/world/+/450
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
This can be useful if I need to import a SSH key to one of the
forge (only GitHub is supported for now).
Change-Id: Ieb5143a670cd75f1fbe51c0f3ae763dd1d667bef
Reviewed-on: https://cl.fcuny.net/c/world/+/449
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
This CLI can be used on the NAS to import an album in my music
collection.
Change-Id: I5749e34b55bead846e9341fca29e648d3859fc8f
Reviewed-on: https://cl.fcuny.net/c/world/+/448
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I59fed38dca010d6aeac48b5066021ca61ba69db9
Reviewed-on: https://cl.fcuny.net/c/world/+/447
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Iea045c74a32dc26b9a39da79f49308a85ec237cc
Reviewed-on: https://cl.fcuny.net/c/world/+/446
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
Running this command in a repository will report how many lines in the
current paths were created by different author, for a given revision. If
no revision is specific, HEAD is assumed.
Change-Id: I3fbed4f35a05e12fef22a72d7231727c05c50c96
Reviewed-on: https://cl.fcuny.net/c/world/+/445
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
I need to remove some repositories I created by mistake, this will make
it easier than messing up with the database.
Change-Id: Ia9357226532fe943d15eaec43413502849e39d3d
Reviewed-on: https://cl.fcuny.net/c/world/+/444
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I8a7e0aa493f26bec11772f48ed481781df72cbe1
Reviewed-on: https://cl.fcuny.net/c/world/+/443
Reviewed-by: Franck Cuny <franck@fcuny.net>
Tested-by: CI
|
|
|
|
|
|
|
| |
Change-Id: Ie98ad07ac4de61fc25f9a9821fb5617d12ea5f70
Reviewed-on: https://cl.fcuny.net/c/world/+/442
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's sometimes useful to store IPv4 addresses as an integer. This tool
helps with the conversion, and also does the reverse conversion.
```
% go run . int2ip 3232235521
3232235521 192.168.0.1
% go run . ip2int 192.168.0.1
192.168.0.1 3232235521
```
Change-Id: Ic1e44057bca3539b4c183d387c635f69f5bf3f36
Reviewed-on: https://cl.fcuny.net/c/world/+/441
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
The scripts should be part of other modules. If there's no good place
for them, they should be part of the packages module.
Change-Id: Ic6c678fbe981444848a0ac7015c6c2e450f3b1c1
Reviewed-on: https://cl.fcuny.net/c/world/+/424
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I212635346d2244d9aa1648d02391d192f33c8a1f
Reviewed-on: https://cl.fcuny.net/c/world/+/423
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
No need for an external script, there's only a need to run the tests and
deploy with `flyctl`.
Change-Id: I05400f6b813573b26af884d784fe407d4435429f
Reviewed-on: https://cl.fcuny.net/c/world/+/421
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I7b8a48c8cfdab1bc6e9a95a999f4add1fc07ebc1
Reviewed-on: https://cl.fcuny.net/c/world/+/420
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I36c6da7eba64e6f877d1a17c700c56a70434625a
Reviewed-on: https://cl.fcuny.net/c/world/+/422
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This test does an HTTP request to ensure the URL for the repository does
not return an error.
The test tries first to do a DNS resolution to see if we have network
access. When we build the binary in the nix sandbox we don't have
network access, so we don't want to fail in this situation, we only want
to skip.
The test is going to be run before we do a deployment.
Change-Id: I184f9208210432a5394158d728e556c949e63a24
Reviewed-on: https://cl.fcuny.net/c/world/+/419
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Id8ad45afc710e1bc5fef5704deb9d8b4c7559b4b
Reviewed-on: https://cl.fcuny.net/c/world/+/418
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two new scripts are created. The first one is to copy an album (usually
in zip format) from my desktop to the NAS. Once the file is copied, the
script calls the second script, which extract the album and call beet to
get it imported in my music collection.
Change-Id: I93509e0cc213ba884a9282e1f474a0f9298a1fb7
Reviewed-on: https://cl.fcuny.net/c/world/+/417
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
We don't need namespaces, a better abstraction is to use different
buckets, as this provides a better abstraction to manage quotas and
permissions.
|
|
|
|
| |
There's no need to install the libpcap-dev package for this repo.
|
|
|
|
| |
There's no `cmd` directory in this repo.
|
|
|
|
|
| |
Let's ensure we test and build a binary when pushing to main and when we
create a pull-request.
|
|
|
|
|
|
|
|
|
| |
Add the stub commands for the binary. Each command will be in its own
file (with the exception of delete/un-delete). This will make it easier
to navigate the code.
We use `github/urfave/cli` for generating the sub commands, as the
module is well documented and easy to use.
|
| |
|
|
|
|
| |
This is a high level description of what buckit is and how it works.
|
| |
|
|
|
|
| |
This commit is empty on purpose.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I don't need to backup the observability data for sourcegraph. I also
don't need to backup the cache. These files change a lot and are about
~300M of data every day, which creates a lot of churn for our backup.
All I need if I restore a backup is the content of the database and the
indexes.
Change-Id: Ifaddda7626ecae32162503bc14aa8d1ffa716622
Reviewed-on: https://cl.fcuny.net/c/world/+/416
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ie69e250c7a63e2f5bea360b5ac62fcd748f48735
Reviewed-on: https://cl.fcuny.net/c/world/+/415
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
| |
Store the name of the subsystem in a constant, add some comments on
where to find the list.
|
| |
|
|
|
|
|
|
| |
Add a Makefile to install the binary in GOPATH and the unit file for the
service. When the binary is installed, systemd is reloaded and the
service is also started.
|
|
|
|
|
|
|
|
|
|
|
|
| |
As I want the scrobbler to be started automatically when I log into my
session, the easiest way to do this is by having a systemd unit file
that I run for my own user.
The unit expects that the binary for the scrobbler is under my $GOPATH,
which is hard coded for now. We also ensure that the binary exists
before starting the unit.
We harness the service with a number of directives.
|
|
|
|
|
|
|
|
| |
If the status of the player is "stop", we don't have a new song to
handle. In this case, if there's a current song, let's update the status
and clear our state.
Closes #1.
|
|
|
|
|
|
|
|
| |
Add a column `playtime` to the records table to keep track of how long a
song was played.
With this information, in the future, we will be able to sum up how long
we listen to music, but also which songs were skipped.
|
|
|
|
|
|
|
|
| |
The program needs two arguments: the mpd host and port, which can be
passed as flags (default is to use the local instance of mpd).
We store the database in `XDG_CONFIG_HOME/mpd-scrobbler`, and we create
the path if needed.
|
|
|
|
|
|
| |
To compare the current attributes with the current record, we can use
the helper `EqualAttrs` which will tell us if we need to create a new
record or not.
|
| |
|
|
|
|
|
|
|
|
| |
When creating a scrobbler, we provide the path to the database. The
scrobbler then get a handler to the database.
When a new record is created, we persist it to the database using the
`save` function.
|
|
|
|
| |
When we create a new record, let's capture when this was created.
|
|
|
|
|
|
|
|
|
| |
We want to persist the records in a database, so we can extract
statistics and an history.
The module for the database is straightforward: it opens the database if
it exists and return an handler to it. If the database does not exists,
we create it and we create the only table we need (records).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new function to create a scrobbler. The function takes care of
creating the mpd client.
Add a function to run the scrobbler, which takes care of creating a new
record when needed.
This will simplify the interface for the caller, as all they really care
about is: create the scrobbler, close it when we're done, and collect
songs information while we listen to our music.
|
| |
|
|
|
|
|
| |
Let's close both the watcher and the client, instead of leaking this
interface to the user.
|
| |
|
|
|
|
|
|
| |
When we receive an event from the player, we look if the song is
different from the previous one, and we create a new record if that's
the case. If the song is similar, there's nothing to do.
|
|
|
|
|
| |
Define the type for a log record and add an helper function to create a
new record.
|
|
|
|
|
|
|
|
|
|
| |
We create a module "mpd" to interact with our MPD instance. For now we
only have a single function to create a new client, which creates an
actual client for mpd (and we ping the instance every 30 seconds), and
a watcher to receive new events.
The tool "scrobbler" then wait for new events and display songs
information.
|
|
|
|
| |
Describe what is being collected.
|
| |
|
| |
|
|
|
|
| |
This commit is empty on purpose.
|
|
|
|
|
|
|
| |
Change-Id: I0a8bbe976687a8408e1a931ecf2a90cbaa4926e2
Reviewed-on: https://cl.fcuny.net/c/world/+/414
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ifcd265c515b0fc5e1999eed0d7594475e84a346a
Reviewed-on: https://cl.fcuny.net/c/world/+/413
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I4d229d0f4a9142e3bd427a8e63733426f5ca5bd9
Reviewed-on: https://cl.fcuny.net/c/world/+/412
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
| |
We add a new argument to the CLI to collect the path where we want to
publish the firecracker metrics.
|
|
|
|
|
|
|
| |
To help working on this project in the future, let's try to install
dependencies and configurations with `make`. For now we know that we
need the firecracker binary, the CNI configuration and the CNI plugin
for TAP.
|
| |
|
|
|
|
|
|
|
| |
By specifying these options we can speed up the boot process from 0.9
second to 0.15 seconds. Without these options, the linux kernel spends a
few milliseconds probing the device, which is useless in our context
(see https://github.com/firecracker-microvm/firecracker/blob/main/docs/api_requests/actions.md#intel-and-amd-only-sendctrlaltdel)
|
| |
|
|
|
|
|
|
|
|
|
| |
The binary needs a few more arguments: the path to the firecracker
binary, the path to a linux kernel.
Using the image that was generated, we can now boot the VM with
firecracker. This will rely on a CNI configuration to create the
network, and will use the provided kernel to boot.
|
|
|
|
|
|
|
|
|
| |
Add a target to the Makefile to download a version of firecracker and
extract it under the repository hack/firecracker. We will then use this
binary for running the VM.
Add a CNI configuration under hack/cni. This configuration will need to
be copied to `/etc/cni/conf.d`.
|
| |
|
| |
|
|
|
|
|
| |
When reading the configuration for the container, if there's an error we
return the error to the caller.
|
|
|
|
| |
Add a workflows to perform some validation when pushing new commits.
|
|
|
|
|
|
|
|
|
| |
Once we will be ready to boot our VM, we will need an init script in
place. For this, we create a simple shell script which we populate using
the environment variables and command extracted from the container.
The init script is stored in /init.sh within the new image, and we will
configure the boot parameter to find it there.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We create a loop device by pre-allocating space to a file on disk. This
file is then converted to an ext4 partition, which we mount to a
temporary path on the host.
Once this is done, we extract all the layers from the given container on
that mounted path. We also add a few extra files to the image
(`/etc/hosts` and `/etc/resolv.conf`).
When we're done extracting and writing, we run resize2fs in order to
resize the image to a more reasonable size.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will ensure that our container will not be deleted while we work on
it. In addition, a default expiry of 24 hours will be set on it once the
lease is released (once the program is completed).
See [1] for more details.
[1] https://github.com/containerd/containerd/blob/261c107ffc4ff681bc73988f64e3f60c32233b37/docs/garbage-collection.md
Signed-off-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pull an image provided as an argument to the program. We're only
interested in images for Linux/amd64 at the moment.
We setup a default namespace for containerd named `c2vm`. Images that
will be pulled by containerd will be stored inside that namespace.
Once the program is build it can be run like this:
```
; sudo ./c2vm -container docker.io/library/redis:latest
pulled docker.io/library/redis:latest (38667897 bytes)
```
And the image is indeed in the namespace:
```
; sudo ctr -n c2vm images ls -q
docker.io/library/redis:latest
```
|
| |
|
| |
|
|
|
|
| |
This commit is empty on purpose.
|
|
|
|
|
|
|
|
|
| |
I do not use drone anymore, no need to keep this around.
Change-Id: I8f9564747939a6d1a2b95bcfe8e2c70e46d8bc1e
Reviewed-on: https://cl.fcuny.net/c/world/+/411
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
I do not use it anymore, I don't need to keep this around.
Change-Id: I42af32eec4ee8ab4c2a8c60b5a8306a4eb418f51
Reviewed-on: https://cl.fcuny.net/c/world/+/410
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
I can now run `nix run .#ci.shellcheck` to validate the shell scripts
with shellcheck in the repository.
The pipeline in buildKite will need to be updated.
Change-Id: Ia52ede86adfa58c9615b0f9e290ef5d5b8adb303
Reviewed-on: https://cl.fcuny.net/c/world/+/409
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I don't need tags in this repository. There's no need to create them
after a deploy.
Before stopping the fly.io agent, checks that we're in the CI
environment.
Change-Id: I6208b70023c6ae74d58e535e24b44221956dbe63
Reviewed-on: https://cl.fcuny.net/c/world/+/408
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
| |
The script uses shellcheck to validates that the shell scripts are
correct.
This is not used by anything yet.
Change-Id: Ia96b132143fa0824eaf23420a72e5b518d618250
Reviewed-on: https://cl.fcuny.net/c/world/+/407
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ifc199c19e80f0c4f6beb5d04d981580c8edaadf6
Reviewed-on: https://cl.fcuny.net/c/world/+/405
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a script for CI to check that all the files are formatted correctly.
This is done by using `treefmt' with a configuration for go and nix
files (for now).
Running `nix run .#ci.fmt' in the repository will check all the files,
and fail if there's any problems. It will not modify any files.
The pipeline in builKite needs to be updated to run that command.
Change-Id: Iec91163f1ab56ceb0cfff6db8f8ce93367ebeefe
Reviewed-on: https://cl.fcuny.net/c/world/+/403
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
This was done by running `nixpkgs-fmt .'.
Change-Id: I4ea6c1e759bf468d08074be2111cbc7af72df295
Reviewed-on: https://cl.fcuny.net/c/world/+/404
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I79075be119258eb8ee28bf99f404480a646d2583
Reviewed-on: https://cl.fcuny.net/c/world/+/402
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The missing comma resulted in the following error:
```
Jun 10 08:57:09 aptos wireplumber[2303]: Failed to compile: [string "50-bluez-config.lua"]:4: '}' expected (to close '{' at line 1) near '['
```
As a result, the service would not start, which prevented the sound to
work (and overall videos were extremely slow).
Change-Id: If6ff7a29a9cf294f9e8d3f6a44abf2423ecfb6e9
Reviewed-on: https://cl.fcuny.net/c/world/+/401
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
We don't need to backup log files for grafana and sourcegraph.
Change-Id: I8ed6f6ce1270a12233cad268bcd12e28ac2785cf
Reviewed-on: https://cl.fcuny.net/c/world/+/383
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: Ide8e479bc88689e052a372825bc90b23b426a89a
Reviewed-on: https://cl.fcuny.net/c/world/+/382
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I94cb29510cbb85c769947dc26c33f9d767e2f0c8
Reviewed-on: https://cl.fcuny.net/c/world/+/381
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
- list up to 150 repositories per page
- limit stats to a year
- snapshots are in tar.gz format
Change-Id: Ifc52d47893737862d89d24b797ec28f32e5076e9
Reviewed-on: https://cl.fcuny.net/c/world/+/366
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
NixOS 22.05 was released last month. Bump the versions for both nixos
and home-manager.
I also need to make a few changes for this update work (packages were
renamed, options were addded to tailscale, ...)
Change-Id: I84ed9f21915b769c9f7b8e21988b2b021715c982
Reviewed-on: https://cl.fcuny.net/c/world/+/365
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I0911c07d5ab0e17a09e587ba4507d0202f6c7ff3
Reviewed-on: https://cl.fcuny.net/c/world/+/364
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I45a42543d7fb5071022a77382e925b55568e2c2d
Reviewed-on: https://cl.fcuny.net/c/world/+/363
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
The option `exclude' was defined but unused. Add a function to generate
a text file containing all the paths that we want to exclude, and
provide that file as an option when we call `restic'.
Change-Id: I647db892a8a77c589cec1fc975808c5c9ad0b757
Reviewed-on: https://cl.fcuny.net/c/world/+/362
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
| |
Change-Id: I73087942ed86fd2ad3575a4776dba97fac693468
Reviewed-on: https://cl.fcuny.net/c/world/+/361
Tested-by: CI
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: Ia942b32b9eef3d5205a7845ef4945d42af8a0862
Reviewed-on: https://cl.fcuny.net/c/world/+/321
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
We need to ensure the agents can read the secrets / tokens to vote after
a build.
Change-Id: I066c2482a795b21badaa9cc3c525373d7945b084
Reviewed-on: https://cl.fcuny.net/c/world/+/341
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
The buildKite agents need this information in order to vote after a
build.
Change-Id: If03ba51d55f4d1155c6b7fdadace3b4643480258
Reviewed-on: https://cl.fcuny.net/c/world/+/342
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: I7b00987382ef05e032d88cf00e916cdc27511eb1
Reviewed-on: https://cl.fcuny.net/c/world/+/306
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
buildKite can call specific hooks at various stages ([1]). We add a hook
to run after each command. For now we only care if the label of the
command is `:hammer:', since this is what we've defined for our pipeline.
After a successful build, the agent will post a review with +1 if it's a
success, or -1 if the build results in failure.
[1] https://buildkite.com/docs/agent/v3/hooks#job-lifecycle-hooks
Change-Id: I6b2b886c13e6f23ddbc96fd3e865f0d50d625446
Reviewed-on: https://cl.fcuny.net/c/world/+/305
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: Icb3bd8cf01850aa9d35fd574cc18543df5b71fca
Reviewed-on: https://cl.fcuny.net/c/world/+/304
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: I820a636bcdeb6abf7ff8a25ec409c08916e94c42
Reviewed-on: https://cl.fcuny.net/c/world/+/303
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
I don't have credentials for that URL anymore, everything goes through
cl.fcuny.net.
Change-Id: I2361444c2ea42679ab4f28758f708e53eb9c8c06
Reviewed-on: https://cl.fcuny.net/c/world/+/302
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: I5211647802a08e9984dffb6247249ec608688d8c
Reviewed-on: https://cl.fcuny.net/c/world/+/301
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
This plugin stores review information for Gerrit changes in the
`refs/notes/review' branch.
Change-Id: I51c7fe1f8764617e0bff5455d3fe713b0e2f446e
Reviewed-on: https://cl.fcuny.net/c/world/+/300
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
| |
Make the default system be x86-linux.
Change-Id: I13e00e4d4cb8b7c49cc549509e37a6d0f022a051
Reviewed-on: https://cl.fcuny.net/c/world/+/299
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: If1e608b89b39bd5a53a37b873833a7ea881cb418
Reviewed-on: https://cl.fcuny.net/c/world/+/298
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All the modules that are setup by the profiles are now managed at the
host level. This simplify some configuration, and will make it easier to
adjust things at the host instead of trying to squeeze everything into
profiles.
This will also help the refactoring later, when I'll split nixos and
home-manager configuration.
Change-Id: I17ffda8b0b5d15bf1915c6fae5030380523d74b5
Reviewed-on: https://cl.fcuny.net/c/world/+/297
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
| |
All the configuration is done at the host level.
Change-Id: Ib5ef71ea7955f6872fb08f576e48b24a70600693
Reviewed-on: https://cl.fcuny.net/c/world/+/296
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: I9abd49136df79a9ed040c9ec0e12eea30736c9ff
Reviewed-on: https://cl.fcuny.net/c/world/+/295
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: I92abe7d6c9a1f7c5ef3f157137c59cde751d50f0
Reviewed-on: https://cl.fcuny.net/c/world/+/294
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
Remove the trusted profiles, the modules are installed directly within
the host configuration.
Change-Id: I0566fb359803da16bdd3a38e2901deac477fb078
Reviewed-on: https://cl.fcuny.net/c/world/+/293
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
Consume the modules related to multimedia applications at the host
level, instead of having a level of indirection with a profile.
Change-Id: I567f0e01cbfe591beaa2e9086e33434402a4a002
Reviewed-on: https://cl.fcuny.net/c/world/+/292
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: Ibb55ee455423c101fb6d3e62a2e9e4593682cf16
Reviewed-on: https://cl.fcuny.net/c/world/+/291
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
| |
As for the bluetooth configuration, we don't need that level of
indirection. The laptop can consume these services directly, and we can
drop the profile for laptop.
Change-Id: Ia434d336ae581bd040fbc4963e5856806183d55e
Reviewed-on: https://cl.fcuny.net/c/world/+/290
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
I don't need a profile for this, the module can be consumed directly
from the host's hardware configuration. It removes one level of
indirection and helps us toward the goal of completely removing all the
profiles.
Change-Id: I95a6fdc985420e7fe0ad737e7576d10d5c7eb114
Reviewed-on: https://cl.fcuny.net/c/world/+/289
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: Iae8860631a9d313d5b4f78d171d0dfebc6ef6ff9
Reviewed-on: https://cl.fcuny.net/c/world/+/283
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It took me a while to understand why the group and mode were not set
correctly for the buildkite agent secrets. This module is an abstraction
on top of agenix to modify the filename and ensure that the owner of the
file is actually defined in the configuration.
This was not passing the group and mode to agenix, which is why these
values were never set.
This change modify the library to check that the group exists (as we do
for the user), and pass the mode down.
Change-Id: I7f8545868986110ad92fa63ef8efe4cd3bbd9b0f
Reviewed-on: https://cl.fcuny.net/c/world/+/282
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
There's one user per agent. If we don't set an owner for that file, it
will be owned by root. Let's set the ownership to the first builder.
Change-Id: I1270e6858c0bf2797bd12c2557d84a494cef5081
Reviewed-on: https://cl.fcuny.net/c/world/+/281
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
I'm not using drone anymore. I don't need the CLI and the secret to be
installed.
Change-Id: I9c8ecfe5f051fd70d78f0e2e9aaa705e48627714
Reviewed-on: https://cl.fcuny.net/c/world/+/261
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: Id9da12e3a42d42d67cb9962b1ad0b7d27e860663
Reviewed-on: https://cl.fcuny.net/c/world/+/201
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
Create a few scripts that are used to trigger the hook when a patchset
is created.
Change-Id: Ibcfdb76b3e0ca29b9adc4c2719a8f81170818788
Reviewed-on: https://cl.fcuny.net/c/world/+/172
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
| |
The secret is the configuration for the gerrit-hook tool. It contains
the URL to our gerrit instance, the username/password for the gerrit
user used by the tool, the API token for buildKite and the name of the
organization in buildKite.
Change-Id: I58233e085c92d4c5db5635eb9942a5e87ee9e55d
Reviewed-on: https://cl.fcuny.net/c/world/+/204
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
| |
So that we can build and install it.
Change-Id: I1f732ceb7be2e9cca625819562f5baed5e131f85
Reviewed-on: https://cl.fcuny.net/c/world/+/181
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a patchset is created, gerrit will call this tool with a number of
arguments.
This hook triggers a build with buildKite for the given patchset, and
add a comment to gerrit with a link to the build.
We do not wait for the build to be successful to update gerrit. This
will be done by another hook which the buildKite agents will call once
they are done with the build.
Change-Id: Iaa221765f3c52875ec37c5d282ba0557291eb5a4
Reviewed-on: https://cl.fcuny.net/c/world/+/171
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
| |
This is not working as I want.
Change-Id: I5c2a96c77585b84fb68bcd661773a3056a0288f4
Reviewed-on: https://cl.fcuny.net/c/world/+/170
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: I12cc741bdfb074f7d2a006547860362176afe372
Reviewed-on: https://cl.fcuny.net/c/world/+/169
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: Icee60f2372e17f6477a91e7f562c04507788c713
Reviewed-on: https://cl.fcuny.net/c/world/+/168
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: I652a3326caf8f949e9734849d1492f7b9764a766
Reviewed-on: https://cl.fcuny.net/c/world/+/167
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: I4a30d787bddbe16026fd8d24378f532696256002
Reviewed-on: https://cl.fcuny.net/c/world/+/166
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: Icdbc6af9a75834f0e6b11fa2f15d952deb6191dd
Reviewed-on: https://cl.fcuny.net/c/world/+/165
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
| |
Change-Id: Ie3244add8420632017132c20c804fd6ecab3a4e0
Reviewed-on: https://cl.fcuny.net/c/world/+/164
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
| |
Add a function `rgerrit' to run gerrit commands on the server.
Change-Id: I2beb77e7817e2be03ffbd008cf3545091a9d4c41
Reviewed-on: https://cl.fcuny.net/c/world/+/163
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
|
| |
I will not be using drone anymore, and will likely replace it with
buildkite.
Change-Id: I45d91c43090aaba119855158e071dae377c1897f
Reviewed-on: https://cl.fcuny.net/c/world/+/162
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
| |
Change-Id: If26166f29f9b519b87e288b514d2c603ca9b4413
|
|\
| |
| |
| | |
Change-Id: I790690b0877ae309d1d5feb5150f136085e78206
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
The REPL reads the input, send it to the lexer, and prints the token to
STDOUT. For now nothing else is done since we still don't parse the
tokens.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The tokens for equal (`==`) and not equal (`!=`) are composed of two
characters. We introduce a new helper (`peekChar`) that we use when we
encounter the token `=` or `!` to see if this is a token composed of two
characters.
Add some tests to ensure they are parsed correctly.
|
| | |
|
| |
| |
| |
| |
| | |
Ensure that the new keywords added (`if`, `else`, `true`, `false`,
`return`) are parsed correctly.
|
| |
| |
| |
| |
| |
| |
| | |
Add support for a few more keywords (`true`, `false`, `if`, `else`,
`return`).
All keywords are grouped together in the constant declaration.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The test `TestNextTokenBasic` was not testing anything that
`TestNextTokenMonkey` was not already testing.
Rename `TestNextTokenMonkey` to `TestNextToken` for clarity.
|
| |
| |
| |
| | |
For now, automate running the tests.
|
| |
| |
| |
| |
| | |
Support the operator tokens that were added to our tokenizer. This also
add a few more tests to ensure we handle them correctly.
|
| |
| |
| |
| |
| |
| | |
Support additional tokens for operators (`-`, `*`, etc). This change
only adds the tokens to the list of constants, and group all the tokens
related to operators together.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The initial lexer for the monkey language. We only support a small
subset at this stage.
We have some simple tests to ensure that we can parse some small
snippet, and that the minimum number of tokens we need are also all
supported correctly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This is the initial tokenizer for the monkey language. For now we
recognize a limited number of tokens.
We only have two keywords at this stage: `fn` and `let`. `fn` is used to
create function, while `let` is used for assigning variables.
The other tokens are mostly to parse the source code, and recognize
things like brackets, parentheses, etc.
|
| |
| |
| |
| |
| |
| | |
The project is named monkey, we add a mod file to ensure that the
tooling / dependencies are set up correctly when we import various
modules in this project.
|
| | |
|
|
|
|
| |
This commit is empty on purpose.
|
|
|
|
| |
Change-Id: Ib2792fa8c3f861d290f2495a10672cdfd11c48d9
|
|
|
|
|
|
| |
These files are not needed in the monorepo.
Change-Id: I742316d7a6fae817bedbcd2e1f91963bc24c91b7
|
|\
| |
| |
| | |
Change-Id: I4fd7c748648415db1fa9baaa048ba51e186ec268
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
Remove the target from the Makefile, add a target to the flake
configuration.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The version was evaluated before the deploy was done, we need to get
that information after running `flyctl deploy`.
Annotate the tag since we're doing a release.
Remove the argument `IMAGE_REF` since it's being ignored.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Prior to this change, the size of the image was about 300MB:
```
; docker images|grep fcuny/golang|grep days
fcuny/golang.fcuny.net d07add42f21a69e2c057eae8492bbd599dc50082 9fd284c5d8ee 2 days ago 313MB
fcuny/golang.fcuny.net ca3dd083f8d6642821781ce03829713524322bbe 8104afadfd1f 2 days ago 313MB
```
With this change, we're reducing the image to less than 10MB:
```
fcuny/golang.fcuny.net 19b3dccc1ff31534df3636d4d7d6a28c0ae1e189 c9ae35574f8e 24 seconds ago 9.09MB
```
Since there's storage and bandwidth involved in this process, there's no
point in not going for a smaller image.
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
Don't deploy to Google App anymore, but use fly.io instead.
Add steps to the Makefile to build a docker image, and to deploy the
application to fly.io.
|
| |
| |
| |
| | |
The repository for `homelab` is not ready yet.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Rewrite the program to use external templates and load the configuration
from an external source.
We don't want to blindly send all the requests to some SCM since we want
to support only some modules / program that way.
There's two templates, one for requests coming from a browser, which
list all the supported modules, and one for the `go get` command.
For requests coming from `go get`, we generate a template that indicates
where the repository is.
The external configuration is in YAML, and list all the supported
repositories, and the URL of the repository. It assumes a default VCS
for all the modules (git in our case).
|
| | |
|
| |
| |
| |
| | |
Add a target to open the console.
|
| | |
|
| |
|
|
|
|
|
|
| |
Change-Id: I1c57da26d315c847fc5cef134e75a34395764ac9
Reviewed-on: https://cl.fcuny.net/c/world/+/161
Reviewed-by: Franck Cuny <franck@fcuny.net>
|
|
|
|
|
|
|
|
| |
This has been dropped in cgit.
Change-Id: I255ea20b4f81d080207ac8eac6f6727cac2d54f5
Reviewed-on: https://cl.fcuny.net/c/world/+/126
Reviewed-by: Franck Cuny <franck@fcuny.net>
|