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

681 B

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>
#!/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