Nix-Config Workflow Recipes Using Just

Поділитися
Вставка
  • Опубліковано 14 чер 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!
    SUPPORT
    If you find what I do helpful, please consider supporting my work on Ko-fi.
    ko-fi.com/unmovedcentre
    I intentionally keep my content ad free.
    RELATED VIDEOS
    - Structural anatomy of my nix-config: • Anatomy of a NixOS Con...
    - Sops and secrets management in NixOS: • NixOS Secrets Manageme...
    - NixOS Automated Remote Bootstrapping with Secrets: • NixOS Automated Remote...
    EXTERNAL REFERENCES
    - the official 'just' repository: github.com/casey/just
    - My nix-config justfile: github.com/EmergentMind/nix-c...
    CONNECT
    - Subscribe to this UA-cam channel
    - My website: www.unmovedcentre.com
    - X / Twitter: / emergent_mind
    - GitHub: github.com/EmergentMind
    - GitLab: gitlab.com/emergentmind
  • Наука та технологія

КОМЕНТАРІ • 21

  • @MrPezetko
    @MrPezetko 11 днів тому +1

    You can specify pre/post dependencies on the command itself like this:
    rebuild: rebuild-pre && rebuild-post
    Will run "rebuild-pre", "rebuild" and "rebuild-post" in this order.

  • @Peter1215
    @Peter1215 Місяць тому +2

    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.

    • @Emergent_Mind
      @Emergent_Mind  Місяць тому

      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!

  • @khwpp5943
    @khwpp5943 Місяць тому +1

    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?

    • @Emergent_Mind
      @Emergent_Mind  Місяць тому

      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 :)

    • @brentonbills5946
      @brentonbills5946 Місяць тому

      Looking forward to the new series. Just looks like Make?

    • @Emergent_Mind
      @Emergent_Mind  Місяць тому +1

      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!

  • @ttrss
    @ttrss Місяць тому +3

    for your use case is this not literally just make? I don't see the difference

    • @khwpp5943
      @khwpp5943 Місяць тому +5

      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.

    • @Emergent_Mind
      @Emergent_Mind  Місяць тому +2

      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!

  • @jahanson
    @jahanson Місяць тому

    Do you only need to stage and not commit? I thought you had to commit.

    • @khwpp5943
      @khwpp5943 Місяць тому +2

      stage only; git add'ing suffices.

  • @anonymouscommentator
    @anonymouscommentator Місяць тому

    i dont quite get how this is any different to calling a shell script

    • @Emergent_Mind
      @Emergent_Mind  29 днів тому +1

      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!

    • @anonymouscommentator
      @anonymouscommentator 29 днів тому

      @@Emergent_Mind thanks for the clarification!

  • @aaklevtsov
    @aaklevtsov 6 днів тому

    just is good but go-task is better, imho.

    • @Emergent_Mind
      @Emergent_Mind  5 днів тому

      Any particular reason why? I hadn't heard of it until now but will have a look.
      Thanks for watching and commenting!

    • @aaklevtsov
      @aaklevtsov 4 дні тому +1

      @@Emergent_Mind go templates, include other task files (including remotes), parallel execution for the deps.