81 lines
1.8 KiB
Markdown
81 lines
1.8 KiB
Markdown
# man, it's a hot one
|
|
|
|
`smooooth` is a service to "hot reload" flake-based nixos configurations.
|
|
|
|
|
|
## like seven inches from a midday sun
|
|
|
|
`smooooth` will detect changes to the specified flake, wait for blockers to resolve,
|
|
then trigger build + activation of the new config.
|
|
|
|
blockers can be specified as any executable name. they will prevent reloads
|
|
until they disappear or change their working directory. \
|
|
this way, `smooooth` can wait for your current editor/shell/you-name-it session
|
|
to conclude before rebuilding anything.
|
|
|
|
the only strict requirement is that said executable handles its cwd properly,
|
|
so it can be read from the procfs. \
|
|
this may conflict with behaviour of some editors (ie. vscode), particularly if
|
|
they are started via a .desktop shortcut.
|
|
|
|
#### a brief disclaimer
|
|
|
|
`smooooth` is in a very early but entirely functional state. \
|
|
it may be subject to changes, full rewrites, or unending neglect.
|
|
|
|
enjoy !
|
|
|
|
|
|
## i hear you whispering the words
|
|
|
|
simply add `smooooth.url = git+https://git.atagen.co/atagen/smooooth.git` to your \
|
|
flake inputs, and the reciprocal `{ smooooth }` entry to your output function.
|
|
|
|
now you can import `smooooth.nixosModules.smooooth` in your config modules, and \
|
|
utilise the below listed options to get started !
|
|
|
|
|
|
## to melt everyone, but you stay so cold
|
|
|
|
### services.smooooth.enable
|
|
|
|
`bool`
|
|
|
|
Enable the smooooth nixos hot reloader.
|
|
|
|
|
|
### services.smooooth.blockers
|
|
|
|
`listOf str`
|
|
|
|
A list of executable names that are allowed to block the reload.
|
|
|
|
|
|
### services.smooooth.path
|
|
|
|
`str`
|
|
|
|
The full path to the root of your flake.
|
|
|
|
|
|
### services.smooooth.pollingRate
|
|
|
|
`int`
|
|
|
|
How frequently to poll when waiting on a blocked reload.
|
|
|
|
|
|
### services.smooooth.nixPackage
|
|
|
|
`package`
|
|
|
|
Your preferred package providing a `nix` executable.
|
|
|
|
|
|
### services.smooooth.package
|
|
|
|
`package`
|
|
|
|
Your preferred `smooooth` package.
|
|
|