Up until a few weeks ago, not only I was the only person to use the PowerShell scripting environment I concocted. These were all running on systems I had full control over and I managed.
Recently I've come up with a project at work where I thought the work already poured into this environment of mine would make things easier for me, and so I wanted to use the environment I already wrote in a customer's production server - which is a bit 'scary'.
One of the main reason I got scared, was a custom module I wrote that, when present, caused the entire every script enumeration to delay and complete after 3-5 seconds - which is way too much for auto-completion, or profile loading.
Obviously, I dove in and fixed the issue, but I also decided I need to make the environment as portable as possible, meaning that invoking it can happen without modifying the user's or system's startup profiles.
I've already came up with the need to easily (by using a single script) setup the environment quickly.
But in the past I was only thinking of those environments where the scripting environment should be the main/default behavior, and other people will need to adjust to the environment, because I'm managing the system and that's the way I want it.
As I mentioned, the new goal is to make it also possible to have the environment ready on demand, after downloading it to a new location.
The method is still the same, using git to clone the repository, but instead of relying solely on the profile to load the necessary environment, the same script used to setup the profile will setup the environment first, and only if explicitly asked to, setup the startup profile.
This way I can download the environment to a system, and have it waiting for me to load on demand.
Not really 'breaking' as nobody but me is using it right now, but it does mean that the installation one liner needs to change, and for this I have still to decide what I'll prefer. When I decide, I'll probably document it here as well.