Nix-Config Workflow Recipes Using Just
Vložit
- čas přidán 30. 05. 2024
- A quck video explaing how I use the 'just' utility to streamline working with my nix-config. Check out the links below for related content and the repos mentioned in this video.
OUTLINE
0:00 Introduction
0:31 Installation in nix-config
0:42 Example justfile
0:58 My nix-config justfile
1:20 Listing recipes with a default recipe
1:33 Flake rebuild related recipes (rebuild, rebuild-full, rebuild-pre, and rebuild-post)
2:32 Example of a common oversight: rebuilding with an unstaged .nix file. This is mitigated by using the justfile recipes
3:04 sops secrets related recipes
4:02 rebuild-trace
4:19 update and rebuild-update
4:39 addition sops secrets recipes
5:00 reference to my secrets management series
5:09 recipes related to my upcoming series on automating remote install and config boostrapping
5:22 example output of 'just iso'
5:29 questions and thanks
5:45 500+ subs!
RELATED VIDEOS
- Structural anatomy of my nix-config: • Anatomy of a NixOS Con...
- Sops and secrets management in NixOS: • NixOS Secrets Manageme...
CONNECT
- Subscribe to this CZcams channel
- My website: www.unmovedcentre.com
- X / Twitter: / emergent_mind
- GitHub: github.com/EmergentMind
- GitLab: gitlab.com/emergentmind
EXTERNAL REFERENCES
- the official 'just' repository: github.com/casey/just
- My nix-config justfile: github.com/EmergentMind/nix-c... - Věda a technologie
Just is really cool, I'm using it it almost every project (mostly infra/k8s focused). One thing I found very useful is combining just recipes with direnv variables if you have sensitive data somewhere. I also found that inlining the scripts is more readable than referencing them via separate files, the just file is bigger, but everything is more accessible.
On the nix side, I tried to dive into it a few times but was always put off by the quirky syntax and just overall complexity, but maybe with justfile I might give it another try.
Combining with direnv is a cool idea!
Nix is a bit daunting given it's differences from the 'norm'. The declarative aspect is what ultimately sold me on diving into it.
Let me know how it goes if you do give it another try :)
Thanks for watching!
Some recipes may be shortened by using specific syntax. You might want to take a look at the examples/ dir at the project's GH page.
This is a great tool I've been using lately, simpler than Makefile as well. Have you taken a look at the "NH" nix helper?
Thanks for the suggestion, I'll look into that.
I have looked briefly at NH but haven't tried it out yet. It's on the list to explore though :)
Looking forward to the new series. Just looks like Make?
Glad to hear. It's been an interesting set of problems to solve.
Just syntax was inspired by Make, but the tool itself is much simpler.
Thanks for watching!
for your use case is this not literally just make? I don't see the difference
it's Make, but simpler. just is designed as a command runner rather than a build system which in consequence avoids many complexities from Make.
My current use case isn't much different but, as @khwpp5943 mentioned, expanding the recipes in the future will keep things simple.
Thanks for watching!
Do you only need to stage and not commit? I thought you had to commit.
stage only; git add'ing suffices.
i dont quite get how this is any different to calling a shell script
In some ways they are not much different and there is certainly overlap in basic utility. However, just (and make for that matter) are declaritve in nature whereas bash scripts are imperative. Granted, my examples and use case at the moment don't really demonstrate that.
Thanks for watching and commenting!
@@Emergent_Mind thanks for the clarification!