# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 5
# self = https://watcher.sour.is/conv/funlljq
🤔 Anyone know how things like mdev or udev work internally without reading the C source? 😅
🤔 Anyone know how things like mdev or udev work internally without reading the C source? 😅
I guess the bulk of what mdev really does is basically:

https://github.com/brgl/busybox/blob/abbf17abccbf832365d9acf1c280369ba7d5f8b2/util-linux/mdev.c#L743-L778

Which is to say mdev or udev:

- Scans /sys/class/xxx, looking for directories which have dev file (it is of the form "M:m\n")
- Uses the information in the dev file <major>:<minor> to create entries in /dev of the appropriate type (Character device, Block device, etc)
- Calls mknod() syscall to create the filesystem node

I _think_ I can do this fairly easily with either go-udev or libudev
I guess the bulk of what mdev really does is basically:

https://github.com/brgl/busybox/blob/abbf17abccbf832365d9acf1c280369ba7d5f8b2/util-linux/mdev.c#L743-L778

Which is to say mdev or udev:

- Scans /sys/class/xxx, looking for directories which have dev file (it is of the form "M:m\n")
- Uses the information in the dev file <major>:<minor> to create entries in /dev of the appropriate type (Character device, Block device, etc)
- Calls mknod() syscall to create the filesystem node

I _think_ I can do this fairly easily with either go-udev or libudev
I guess the bulk of what mdev really does is basically:

https://github.com/brgl/busybox/blob/abbf17abccbf832365d9acf1c280369ba7d5f8b2/util-linux/mdev.c#L743-L778

Which is to say mdev or udev:

- Scans /sys/class/xxx, looking for directories which have dev file (it is of the form "M:m\\n")
- Uses the information in the dev file <major>:<minor> to create entries in /dev of the appropriate type (Character device, Block device, etc)
- Calls mknod() syscall to create the filesystem node

I _think_ I can do this fairly easily with either go-udev or libudev