flox / flox

Developer environments you can take with you
https://flox.dev
GNU General Public License v2.0
2.15k stars 51 forks source link

feat: refactor activation package #1460

Closed limeytexan closed 3 weeks ago

limeytexan commented 4 weeks ago

Proposed Changes

This patch refactors all files associated with flox environment activation into a single flox-activate package, and accordingly updates all internal references between these files to refer exclusively to the installed package path within the Nix store. This package is then installed into the environment to provide that top-level activate script, after which all further logic is specific to that one package. This opens the possibility of invoking newer versions of the flox-activate package with previously-rendered environments, allowing for improvements in the flox activation experience without requiring users to re-render their environments.

Note that this PR moves the scripts previously defined as constants in realise.cc to separate scripts that are now checked by shellcheck as part of the build. That said, I have disabled all shellcheck auditing in the process so that this patch can represent a faithful move of the scripts from one location to the other, and incorporates no other modifications.

A followup PR will enable shellcheck auditing for all scripts and introduce the associated fixes to silence the various warnings and errors.

Release Notes

N/A