cutesetup-0.1.0.0: README.org
#+author: Alice Liddell
#+options: toc:nil
[[file:demo.gif]]
* What?
✿ A cute Haskell TUI for quickly scaffolding =flake.nix= + =.envrc= for common languages.
* Why?
Because manually writing Nix flakes every time you start a new project is annoying! Let a cute TUI do the heavy lifting.
* Features
- *Language picker* - 13 languages: Python, Rust, Go, Node.js, Haskell, Ruby, Zig, C, Java, Elixir, Gleam, OCaml, Nix
- *Package picker* - pre-curated packages per language, toggle on/off with =Space=
- *nix search integration* - press =s= to open a live search screen powered by =nix search nixpkgs=, add results to your devshell
- *Auto-generates* =flake.nix= (with =flake-utils=, =eachDefaultSystem=, =mkShell=) and =.envrc= (=use flake=)
- Backs up existing files to =.bak= before overwriting
* How?
** Keys
| Screen | Key | Action |
|------------+---------------+------------------------|
| Language | =↑= / =↓= | Navigate |
| Language | =Enter= | Select language |
| Language | =q= | Quit |
| Packages | =↑= / =↓= | Navigate |
| Packages | =Space= | Toggle package |
| Packages | =s= | Open nix search |
| Packages | =Enter= | Continue to output dir |
| Packages | =Esc= | Back to lang picker |
| nix search | type | Search nixpkgs live |
| nix search | =↑= / =↓= | Navigate results |
| nix search | =Enter= | Add / remove result |
| nix search | =Tab= | Skip to output dir |
| nix search | =Esc= | Back to packages |
| Dir | type | Edit output path |
| Dir | =Enter= | *Generate files* |
| Dir | =Esc= | Back to packages |
| Done | =q= / =Enter= | Exit |
** Nix Run
#+BEGIN_SRC bash
nix run github:petalmaya/cutesetup
#+END_SRC
** Building from source
*** With nix
#+BEGIN_SRC bash
nix build
#+END_SRC
*** With cabal (inside nix shell)
#+BEGIN_SRC bash
nix develop
cabal build
#+END_SRC
*** "Install"
I don't recommend this but if you want to use profiles go ahead~
#+BEGIN_SRC bash
nix profile install .
#+END_SRC
* Who's Alice?
Im Alice silly goose~
* License Note
While the generator itself is licensed under the Apache License, all templates and configuration files generated by it are dedicated to the public domain under the CC0 1.0 Universal license. You may use, modify, and distribute the output without any restrictions.
God this is horribly written for a README, I promise you the code is much better :3