Compare commits

...

2 commits

Author SHA1 Message Date
ptrcnull 58ac4a8b6b docs: add requirements 2022-08-05 22:40:01 +02:00
ptrcnull b9b3f93f51 feat: add nuke-state
...duh
2022-08-05 22:36:46 +02:00
2 changed files with 30 additions and 10 deletions

View file

@ -4,12 +4,17 @@
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
@ -17,15 +22,18 @@ save-state <name> <value>
init-state flip
save-state flip "up"
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"
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 "up"
}
save-state flip "$current"
save-state flip "$current"
}
nuke-state flip
```

12
nuke-state Executable file
View file

@ -0,0 +1,12 @@
#!/bin/execlineb
importas -ui name 1
importas -ui rdfd ELSTATE_${name}
backtick -E wrfd { s6-expr "$rdfd" + 1 }
fdclose ${rdfd}
fdclose ${wrfd}
shift
elgetpositionals
$@