this post was submitted on 25 Feb 2024
12 points (100.0% liked)

NixOS

232 readers
17 users here now

NixOS is a Linux distribution built on top of the Nix package manager. Its declarative configuration allows reliable system upgrades via several official channels of stability and size.

This community discusses NixOS, Nix, and everything related.

founded 1 year ago
MODERATORS
 

I setup a next.js project with pkgs.mkshell, and used nix develop to automatically build the project. However, when I leave the shell, the files persist. How should/can(?) I setup my shell.nix so that files in the directory it drops down into are automatically removed when leaving the ephemeral shell?

top 3 comments
sorted by: hot top controversial new old
[–] [email protected] 3 points 4 months ago (1 children)

WDYM by "directory it drops down into"? nix develop stays in your current working directory.

If I wanted to clean up state, I'd create a clean task in the build system or build a clean script that I'd wire up to the flake outputs such that you could run nix run .#clean.

[–] [email protected] 0 points 4 months ago (1 children)

I see, thanks

As for "drop down", I was loosely referring to the newly spawned terminal

clean scripts get the job done. I was thinking of persisting changes to the filesystem state only while the ephemeral shell was live, that way every time I ran nix develop i would check to make sure my project could automatically build, and If there was any state that needed persisting, I would have to commit/push and label those changes somewhere before ending my session

[–] [email protected] 2 points 4 months ago

You could achieve something like that using bubblewrap; effectively a container. You can tell it to mount tmpfs wherever you like. That has other issues though.

That's a big of a complex setup which other people potentially working with you may not want to have. A clean task is just better. If you're using git anyways, you can also just use git clean.