1
Fork 0
mirror of https://github.com/RGBCube/Site synced 2025-07-31 13:07:46 +00:00

Compare commits

...

3 commits

Author SHA1 Message Date
16601d0ffb
blog.gitignore: update gitignore example 2025-07-26 19:48:35 +03:00
2f0551c767
blog.3-json: init 2025-07-21 13:35:01 +03:00
4e08f1a9b7
blog.no-gnulib: add tags 2025-07-21 13:34:52 +03:00
3 changed files with 71 additions and 4 deletions

View file

@ -98,18 +98,21 @@ You change your gitignore to this:
!.gitignore
!src/*.rs
# whitelist `src` directories and their children, regardless of place
!src/**/
!src/**/*.rs
!Cargo.{toml,lock}
!pysrc/*.py
# whitelist root `pysrc` directory
!/pysrc/*.py
!pyproject.toml
!poetry.lock
!cmd/*.go
!/cmd/*.go
!main.go
!go.{mod,sum}
!docs/*.md
!/docs/*.md
```
Now, nobody can accidentally commit undesired files, as git automatically

View file

@ -1,6 +1,9 @@
---
title: Say NO to Gnulib
description: ...and Debian.
tags:
- build-systems
---
If you are a GNU maintainer and are not willing to be criticized by people sick

View file

@ -0,0 +1,61 @@
---
title: 3-json
description: tree, not three
tags:
- cli
---
From the
[`tree(1)` release notes](https://oldmanprogrammer.net/source.php?dir=projects/tree/CHANGES),
version 2.0.0:
> - Output un-indented JSON on file descriptor 3 ("stddata") automatically if
> file descriptor 3 is present (currently Linux only.) Maybe switch to BSON.
Surely, nothing will happen if I just assume that the existence of a specific
file descriptor implies something, as nobody is crazy or stupid enough to
hardcode such a thing? **_\<insert sounds of cars crashing in the
background\>_**
Oops (from the `tree`version 2.0.2 release notes):
> - Okay, apparently the stddata addition is causing havoc (who knew how many
> scripts just haphazardly hand programs random file descriptors, that's
> surely not a problem.) Going forward the stddata option will only work if
> the environment variable STDDATA_FD is present or set to the descriptor to
> produce the JSON output on.
Assuming anything about the users environment is and will always be a mistake.
But it's still cool we can have `tree` output structured data using
`STDDATA_FD`:
```json
> STDDATA_FD=1 tree
[{"type":"directory","name":".","contents":[{"type":"file","name":"2024-01-01-test.md"},{"type":"file","name":"2024-03-04-htmnix.md"},{"type":"file","name":"2024-04-02-cosmic-drift.md"},{"type":"file","name":"2024-04-15-nix-iceberg.md"},{"type":"file","name":"2024-05-20-swap-i.md"},{"type":"file","name":"2024-09-30-gitignore.md"},{"type":"file","name":"2025-06-05-why-cores.md"},{"type":"file","name":"2025-06-09-nginix.md"},{"type":"file","name":"2025-06-20-intro-cab.md"},{"type":"file","name":"2025-07-04-derive-broken.md"},{"type":"file","name":"2025-07-20-no-gnulib.md"},{"type":"file","name":"_data.ts"}]},{"type":"report","directories":1,"files":12}]
```
Also, obligatory [nushell](https://nushell.sh/) mention (using the `markdown`
table style because for some reason the fancy characters don't render properly
with my webfont):
```sh
> STDDATA_FD=1 tree | from json
|-#-|---type----|-name-|------------------contents-------------------|-directories-|-files-|
| 0 | directory | . | |-#--|-type-|------------name-------------| | nope | nope |
| | | | | 0 | file | 2024-01-01-test.md | | | |
| | | | | 1 | file | 2024-03-04-htmnix.md | | | |
| | | | | 2 | file | 2024-04-02-cosmic-drift.md | | | |
| | | | | 3 | file | 2024-04-15-nix-iceberg.md | | | |
| | | | | 4 | file | 2024-05-20-swap-i.md | | | |
| | | | | 5 | file | 2024-09-30-gitignore.md | | | |
| | | | | 6 | file | 2025-06-05-why-cores.md | | | |
| | | | | 7 | file | 2025-06-09-nginix.md | | | |
| | | | | 8 | file | 2025-06-20-intro-cab.md | | | |
| | | | | 9 | file | 2025-07-04-derive-broken.md | | | |
| | | | | 10 | file | 2025-07-20-no-gnulib.md | | | |
| | | | | 11 | file | _data.ts | | | |
| 1 | report | nope | nope | 1 | 12 |
```