execline-state/README.md
2022-08-05 22:40:01 +02:00

40 lines
681 B
Markdown

# execline-state
> in spite of skarnet's "execline maintains no state"
a simple shift register built on piperw(1)
requirements:
- execline (obviously)
- s6-portable-utils (s6-expr, s6-ls, s6-tail)
### usage
```
init-state <name>
load-state <name> <target>
save-state <name> <value>
nuke-state <name>
```
```sh
#!/bin/execlineb
init-state flip
save-state flip "up"
foreground {
forstdin -E line
load-state flip current
println "! state: $current"
ifelse { s6-test "$line" = "flip" } {
println "! flipping state"
ifelse { s6-test "$current" = "up" } {
save-state flip "down"
}
save-state flip "up"
}
save-state flip "$current"
}
nuke-state flip
```