Add snippets to README
This commit is contained in:
parent
7c4e5683c4
commit
e0c5bdca38
28
README.md
28
README.md
@ -140,3 +140,31 @@ Future features
|
|||||||
* Nix flake templates
|
* Nix flake templates
|
||||||
* [ ] parsing a news feed
|
* [ ] parsing a news feed
|
||||||
* [ ] following a webcomic
|
* [ ] following a webcomic
|
||||||
|
|
||||||
|
## Useful snippets
|
||||||
|
|
||||||
|
`sh -c` is very useful for turning small shell pipelines into intake sources, especially combined with `jq`.
|
||||||
|
This fetch action warns when the disk is getting full:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sh -c 'df -h --output=pcent /home/user | grep -oe '\''[0-9]*'\'' | jq -c '\''if . > 85 then { id: "warning", title: "Free space usage: \(.)%", ttd: 1 } else empty end'\'''
|
||||||
|
```
|
||||||
|
|
||||||
|
Note that the last parameter to `df` narrows the listing down to just the mount with the home directory on it, so there's only one percentage being reported.
|
||||||
|
The threshold is defined by the `if` in the `jq` expression.
|
||||||
|
By using the `empty` output when below the threshold, the source returns no items when usage is low.
|
||||||
|
This is necessary to allow the item `ttd` to delete it.
|
||||||
|
|
||||||
|
If you want a source to act as a scheduled reminder, it is necessary for the fetch to return an item with a new id every time.
|
||||||
|
A short `/dev/random` pipeline can provide a random id to a `jq` expression:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sh -c "cat /dev/random | base32 | head -c8 | jq -cR '{id: ., title: \"Hello\"}'"
|
||||||
|
```
|
||||||
|
|
||||||
|
You can generalize this using `jq`'s `env` and set the message as a source environment variable:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# with MESSAGE defined on the source
|
||||||
|
sh -c "cat /dev/random | base32 | head -c8 | jq -cR '{id: ., title: env.MESSAGE}'"
|
||||||
|
```
|
||||||
|
@ -57,7 +57,7 @@ tmp/intake item add -s page --id 212 --title "Item 212" --body "This is the body
|
|||||||
# test auto update
|
# test auto update
|
||||||
tmp/intake source env -s nothing --set "INTAKE_FETCH=every 5m"
|
tmp/intake source env -s nothing --set "INTAKE_FETCH=every 5m"
|
||||||
tmp/intake source add -s hello
|
tmp/intake source add -s hello
|
||||||
tmp/intake action add -s hello -a fetch -- sh -c "cat /dev/random | tr -dc 'A-Za-z0-9' | head -c16 | jq -cR '{id: ., title: \"Hello\"}'"
|
tmp/intake action add -s hello -a fetch -- sh -c "cat /dev/random | base32 | head -c8 | jq -cR '{id: ., title: \"Hello\"}'"
|
||||||
tmp/intake source env -s hello --set "INTAKE_FETCH=every 1m"
|
tmp/intake source env -s hello --set "INTAKE_FETCH=every 1m"
|
||||||
|
|
||||||
# default password, comment out to test no password
|
# default password, comment out to test no password
|
||||||
|
Loading…
Reference in New Issue
Block a user